Anda di halaman 1dari 9

SISTEM OPERASI

Proses

Oleh : I Dewa Putu Satria Laksana I Putu Dody Wira Andryana Kadek Ary Surya Wiratama Taufiq Yudha Prakoso (1108605028) (1108605036) (1108605043) (1108605051)

Jurusan Ilmu Komputer Program Studi Teknik Informatika Fakultas Matematika dan Ilmu Pengetahuan Alam Universitas Udayana 2012

Proses
Proses merupakan program sedang dieksekusi. Menurut Silberschatz proses tidak hanya sekedar suatu kode program (text section), melainkan meliputi beberapa aktivitas yang bersangkutan seperti program counter dan stack. Sebuah proses juga melibatkan stack yang berisi data sementara (parameter fungsi/metode, return address, dan variabel lokal) dan data section yang menyimpan variabel-variabel global. Tanenbaum juga berpendapat bahwa proses adalah sebuah program yang dieksekusi yang mencakup program counter, register, dan variabel di dalamnya. 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.

Status Proses
Proses yang dieksekusi memiliki lima status yaitu : a. New b. Running c. Waiting d. Ready : Pembentukan suatu proses : Instruksi-instruksi yang sedang dieksekusi : Proses menunggu untuk beberapa event yang terjadi : Proses menunggu untuk dialirkan ke pemroses (processor)

e. Terminated : Proses telah selesai dieksekusi.

Gambar 1 Diagram status proses

Process Control Block (PCB)


Setiap proses digambarkan dalam sistem operasi oleh sebuah process control block (PCB), atau disebut sebuah control block. PCB berisikan banyak bagian dari informasi yang berhubungan dengan sebuah proses yang spesifik, termasuk hal-hal di bawah ini : a. Status Proses, status yang mungkin adalah new, ready, running, waiting, halted, dan seterusnya. b. Program Counter, suatu penghitung yang mengindikasikan alamat dari instruksi selanjutnya yang akan dieksekusi untuk proses tersebut.

c. CPU Register, Register bervariasi dalam jumlah dan tipenya, tergantung pada arsitektur komputer. Register tersebut termasuk accumulator, index register, stack pointer, generalpurposes register, ditambah informasi condition-code. Bersama dengan program counter, keadaan/status informasi harus disimpan ketika gangguan terjadi, untuk memungkinkan proses tersebut berjalan/bekerja dengan benar. d. Informasi Penjadwalan CPU , informasi ini termasuk prioritas suatu proses, pointer ke antrian penjadwalan , dan beberapa parameter parameter penjadwalan. e. Informasi Manajemen Memori, Informasi ini dapat termasuk suatu informasi sebagai nilai dari dasar dan batas register, tabel page/halaman, atau tabel segmen tergantung pada sistem memori yang digunakan oleh sistem operasi. f. Informasi Pencatatan, Informasi ini termasuk jumlah dari CPU dan waktu nyata yang digunakan, batas waktu, jumlah account, jumlah job atau proses, dan banyak lagi.

g. Informasi Status I/O, Informasi termasuk daftar dari perangkat I/O yang di gunakan pada proses ini,suatu daftar berkas-berkas yang sedang diakses dan banyak lagi. PCB hanya berfungsi sebagai tempat penyimpanan informasi yang dapat bervariasi dari proses yang satu dengan yang lain.

Thread
Proses merupakan sebuah program yang mengeksekusi thread tunggal. Kendali thread tunggal ini hanya memungkinkan proses untuk menjalankan satu tugas pada satu waktu. Banyak sistem operasi modern telah memiliki konsep yang dikembangkan agar memungkinkan sebuah proses untuk mengeksekusi multi-threads. Misalnya user melakukan pekerjaan secara bersamaan yaitu mengetik dan menjalankan pemeriksaan ejaan didalam proses yang sama.

Gambar 2 Diagram yang menggambarkan penukaran dari proses ke proses oleh CPU

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 system 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. Perbedaannya ialah proses dengan thread yang banyak mengerjakan lebih dari satu tugas pada satu satuan waktu. Pada umumnya, perangkat lunak yang berjalan pada komputer modern dirancang secara multithreading. 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. Terkadang ada sebuah aplikasi yang perlu 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. Dengan ini maka sebuah web server akan membuat thread yang akan mendengar permintaan klien, ketika permintaan lain diajukan maka web server akan menciptakan thread lain yang akan melayani permintaan tersebut.

Penjadwalan Proses
a.

Antrian Penjadwalan Saat proses memasuki sistem, proses akan dimasukkan ke job queue (queue = antrian) yang berisi semua proses yang ada dalam sistem. Proses yang ditempatkan di memori utama, siap dan menunggu untuk dieksekusi akan diletakkan di ready queue. Ready queue biasanya disimpan dalam bentuk linked list. Proses yang menunggu device IO ditempatkan pada device queue atau I/O waiting queue. Proses dapat berpindah dari queue yang satu ke queue yang lain. Saat suatu proses mendapat jatah CPU dan dieksekusi, satu dari kejadian-kejadian berikut mungkin terjadi : Proses meminta IO, dan akan ditempatkan pada IO queue. Proses menciptakan subproses dan menunggu subproses selesai dieksekusi (terminates). Proses disingkirkan dengan paksa dari CPU akibat interupsi dan diletakkan kembali di ready queue.

b.

Schedulers Schedulers bertugas untuk memilih proses untuk keperluan penjadwalan. Ada dua istilah untuk scheduler yaitu long term scheduler atau job scheduler yang akan memilih proses dari kelompoknya dan me-load ke memori untuk dieksekusi dan short term sceduler atau CPU scheduler memilih satu diantara proses yang siap dieksekusi dan mengalokasikan ke CPU. Secara umum, proses dapat dideskripsikan menjadi proses I/O bound atau proses CPU bound. Proses I/O bound menghabiskan lebih banyak waktu melakukan I/O daripada komputasi. Proses CPU bound menghabiskan lebih banyak waktu untuk komputasi. Sistem time sharing mamperkenalkan medium term scheduler yang menggunakan konsep swapping. Konsepnya adalah menyingkirkan proses dari memori untuk mengurangi banyaknya proses di memori (degree of multiprogramming), kemudian pada waktu tertentu proses dikembalikan lagi dan eksekusi dilanjutkan.

c.

Context Switch Context switch adalah kegiatan menyimpan state dari proses lama dan me-load state untuk proses baru ketika CPU dialihkan untuk proses lain. Context switch time adalah waktu yang dibutuhkan untuk context switch, merupakan waktu dimana CPU tidak digunakan oleh proses manapun.

Operasi Pada Proses


a. Pembuatan Proses Proses dapat membuat beberapa proses baru selagi dieksekusi. Proses yang membuat proses baru disebut parent, sedangkan proses baru yang dibuat disebut children. Ketika proses membuat proses baru, ada dua kemungkinan yang terjadi pada saat eksekusi, yaitu : parent terus dieksekusi bersamaan dengan children atau parent menunggu sampai beberapa atau semua children selesai dieksekusi. b. Pengakhiran (Termination) Proses Suatu proses berakhir ketika proses tersebut sudah selesai dieksekusi dan meminta sistem operasi untuk menghapusnya. Parent dapat mengakhiri eksekusi salah satu dari childrennya untuk alasan tertentu seperti : child telah menggunakan sumber daya lebih dari yang telah dialokasikan, task yang ditugaskan untuk children tidak diperlukan lagi, atau parent sudah berakhir (termination).

Kerjasama Proses
Eksekusi proses secara bersamaan pada sistem operasi dapat berupa proses yang mandiri (independent) atau proses yang bekerja sama (cooperating). Proses merupakan proses mandiri jika tidak mempengaruhi atau dipengaruhi oleh eksekusi proses lain dalam sistem. Dapat pula dikatakan proses yang tidak berbagi data dengan proses lain disebut proses yang mandiri. Proses yang bekerja sama merupakan kebalikan dari proses independen, yaitu proses yang berbagi data dengan proses lain atau dapat mempengaruhi atau dipengaruhi oleh eksekusi proses lain dalam sistem. Ilustrasi dari proses yang bekerja sama adalah producer-consumer problem. Buffer yang digunakan untuk producer-consumer problem dapat berupa bounded-buffer atau unbounded-buffer. Bounded-buffer berkapasitas terbatas, sedangkan unbounded-buffer berkapasitas tidak terbatas. (lihat simulasi producer-consumer problem dengan bounded-buffer). Keuntungan dari kerjasama proses yaitu: Berbagi informasi Komputasi lebih cepat Modularitas Kenyamanan

Komunikasi antar Proses


Komunikasi antar proses menyediakan mekanisme bagi proses untuk berkomunikasi dan mengsinkronisasi-kan aksi mereka.

Message - Passing System Fungsi dari message passing system adalah mengatur proses untuk berkomunikasi dengan proses lain tanpa perlu untuk berbagi data. Operasi yang disediakan adalah send dan receive. Pesan yang dikirim dapat berukuran tetap atau variabel. Apabila pesan berukuran tetap, maka implementasi pada sistem lebih mudah akan tetapi pemrogramannya lebih sulit. Sedangkan untuk pesan yang ukurannya berupa variabel, implementasi pada sistem lebih sulit,

tapi pemrogramannya lebih sederhana. Jika dua proses akan berkomunikasi, maka harus ada link komunikasi di antaranya. Implementasi logika link ini bermacam - macam, misalnya : Langsung atau tidak langsung Simetris atau asimetri Buffering otomatis atau eksplisit Send by copy atau send by reference Pesan berukuran tetap atau berukuran variable

Langsung dan Tidak Langsung Proses yang ingin mengadakan komunikasi harus mempunyai cara untuk menunjuk satu sama lain, untuk itu dapat digunakan : Komunikasi Langsung Komunikasi Tidak Langsung

Buffering Queue yang berfungsi sebagai buffer (penyangga) dalam komunikasi antar proses ada 3 macam, yaitu: Kapasitas nol: queue mampunyai panjang maksimal 0 Kapasitas terbatas : queue mempunyai panjang terbatas Kapasitas tidak terbatas : queue mempunyai panjang tidak terbatas

Komunikasi pada Client Server


Sockets

Socket didefinisikan sebagai suatu endpoint for communication (titik untuk komunikasi) Rentetan dari IP address dan nomor port Socket 161.25.19.8:1625 mengacu ke nomor port 1625 pada host 161.25.19.8 Komunikasi terjadi antara sepasang socket

Gambar 3 Komunikasi Socket

Remote Procedure Calls


Remote procedure call (RPC) mengabstraksi pemanggilan prosedur antar proses pada system jaringan Stubs adalah perwakilan (proxy) sisi client untuk prosedur aktual pada server Stub sisi client mencari server dan menyusun parameter-parameter Stub sisi server menerima message ini, membuka paket parameter yang disusun, dan mengerjakan prosedur pada server

Pipes Terdapat dua jenis pipes, yaitu : a. Pipes Sederhana


Ordinary Pipe memungkinkan komunikasi dalam bentuk producer-consumer standard Produser menuliskan ke ujung satu (write-end dari pipe) Consumer membaca dari ujung lain (read-end dari pipe) Jadi, pipe sederhana ini bersifat unidirectional Perlu hubungan parent-child antara proses yang berkomunikasi

Gambar 4 Pipes Sederhana

b. Pipes Bernama
Named pipes lebih powerful daripada ordinary pipe. Komunikasi bersifat bidirectional Tidak diperlukan hubungan parent-child antara proses-proses yang berkomunikasi Beberapa proses dapat menggunakan pipe bernama tersebut untuk komunikasi Disediakan pada sistem Unix & Windows

Anda mungkin juga menyukai