Resume Sistem Operasi Bab 4

Processes

Awalnya sistem komputer hanya diperbolehkan menjalankan satu program dalam satu waktu. Program ini memiliki kontrol penuh terhadap sistem, dan memiliki akses ke semua sumber daya sistem.Kebutuhan ini menghasilkan gagasan dari sebuah proses, yang merupakan program dalam eksekusi.Proses adalah unit kerja dalam sistem time-sharing modern.
Sistem Operasi diharapkan semakin kompleks oleh penggunanya. Sebuah sistem karena terdiri dari kumpulan proses: Operasi-sistem proses mengeksekusi kode sistem, dan proses mengeksekusi kode pengguna. Semua proses ini berlangsung bersamaan dengan meggunakan CPU multiplexing. Dengan beralih CPU antara proses, sistem operasi dapat membuat komputer lebih produktif.

KONSEP PROSES
Satu permasalahan diskusi kita tentang sistem operasi adalah pertanyaan tentang apa saja aktivitas CPU??
Sistem batch mengeksekusi pekerjaan dan berbagi waktu untuk program-program yang dijalankan oleh pengguna. Bahkan pengguna satu sistem operasi seperti Microsoft Windows dan Macintosh OS, pengguna dapat menjalankan beberapa program pada satu waktu, Misalnya: prosesor, web browser, dan e-mail paket sekaligus.
Jika pengguna hanya dapat menjalankan satu program pada satu waktu, sistem operasi sangat memerlukan dukungan kegiatan internal diprogram sendiri, seperti manajemen memori. Itulah yang dinamakan Proses. Pekerjaan yang serupa dan dalam banyak hal.  Sistem operasi dan terminologi teori yang dikembangkan ketika aktivitas utama sistem operasi disebut proses kerja.
1. Proses
Proses adalah program dalam eksekusi. Proses lebih dari sekedar kode program yang kadang-kadang dikenal sebagai bagian teks. Seperti nilai dari program counter dan isi dari register prosesor. Selain itu, proses umumnya termasuk proses stack, yang berisi data temporer (seperti parameter metoda, alamat return dan variabel lokal), dan sebuah bagian data, yang berisi variabel global. Program bukanlah sebuah proses. Program adalah sebuah entitas pasif,  seperti isi file yang disimpan pada disk, sedangkan proses adalah suatu entitas aktif, dengan sebuah program counter menentukan instruksi berikutnya untuk mengeksekusi dan seperangkat sumber daya yang terkait. Meskipun dua proses dapat dikaitkan dengan program yang sama, mereka tetap dianggap dua urutan eksekusi yang terpisah.
2. Process State
a. Running. Status yang dimiliki pada saat instruksi-instruksi dari sebuah proses dieksekusi
b. Waiting. Status yang dimiliki pada saat proses menunggu suatu sebuah event seperti proses M/K.
c. Ready. Status yang dimiliki pada saat proses siap untuk dieksekusi oleh prosesor.
d. New. Status yang dimiliki pada saat proses baru saja dibuat
e. Terminated. Status yang dimiliki pada saat proses telah selesai dieksekusi.
Hanya satu proses yang dapat berjalan pada prosesor mana pun pada satu waktu. Namun, banyak proses yang dapat berstatus Ready atau Waiting.

Gambar 1 : Diagram Status proses
3. Blok Kontrol Proses

Setiap proses digambarkan dalam sistem operasi oleh sebuah process control block(PCB) yang juga disebut sebuah control block.
Gambar 2 : Process 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 new, ready, running, waiting, halted, dan juga banyak lagi.
b. Program Counter . Suatu stack yang berisi alamat dari instruksi selanjutnya untuk dieksekusi untuk proses ini.
c. CPU register. Register bervariasi dalam jumlah dan jenis, tergantung pada rancangan komputer. Register tersebut termasuk accumulator, register indeks, stack pointer, general-purposes register, ditambah code information pada kondisi apa pun. Beserta dengan program counter, keadaan/status informasi harus disimpan ketika gangguan terjadi, untuk memungkinkan proses tersebut berjalan/bekerja dengan benar setelahnya.
Gambar 3 : Diagram yang menunjukkan CPU beralih dari proses untuk di proses
d. Informasi manajemen memori. Informasi ini dapat termasuk suatu informasi sebagai nilai dari dasar dan batas register, tabel halaman, atau tabel segmen tergantung pada sistem memori yang digunakan oleh sistem operasi (lihat Bagian V, Memori).
e. Informasi pencatatan. Informasi ini termasuk jumlah dari CPU dan waktu riil yang digunakan, batas waktu, jumlah akun, jumlah job atau proses, dan banyak lagi.
f. Informasi status I / O. Informasi termasuk daftar dari perangkat I/O yang di gunakan pada proses ini, daftar berkas-berkas yang sedang diakses dan banyak lagi.
4. Threads
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.

PENJADWALAN PROSES
Tujuan dari multiprogramming adalah untuk menjalankan beberapa proses secara bersamaan, sehingga memaksimalkan penggunaan CPU. Waktu-berbagi untuk beralih antar proses CPU yang begitu cepat, menjadikan pengguna dapat berinteraksi baik dengan setiap program yang dijalankan. Sebuah sistem uniprocessor hanya dapat menjalankan satu proses. Jika ada proses yang lain, maka harus menunggu sampai CPU bebas dan dapat dijadwalkan kembali.
1. Scheduling Queues (Penjadwalan Antrian)
Ketika sebuah proses memasuki sistem, proses itu diletakkan di dalam  job queue   . Pada antrian ini terdapat seluruh proses yang berada dalam sistem. Sedangkan proses yang berada pada memori utama, siap dan menunggu untuk mengeksekusi disimpan dalam sebuah daftar yang bernama  ready queue   . Antrian ini biasanya disimpan sebagai linked list  . Header  dari ready queue  berisi pointer  untuk PCB pertama dan PCB terakhir pada list. Setiap PCB memiliki pointer field  yang menunjuk kepada PCB untuk proses selanjutnya dalam ready queue .
Sistem operasi juga memiliki antrian lain. Ketika sebuah proses dialokasikan ke CPU, proses tersebut berjalan sebentar lalu berhenti, di-interupsi, atau menunggu suatu hal tertentu seperti selesainya suatu permintaan I/O. Dalam permintaan I/O, bisa saja yang diminta itu adalah tape drive, atau peralatan yang di- share  secara bersama-sama, seperti disk. Karena ada banyak proses dalam sistem, disk bisa saja sibuk dengan permintaan I/O dari proses lainnya. Untuk itu proses tersebut mungkin harus menunggu disk tersebut. Daftar dari proses-proses yang menunggu peralatan I/O tertentu disebut dengan  device queue. Tiap peralatan memiliki device queue-nya masing-masing.
Gambar 4 : Device Queue
2. Schedulers
Sebuah proses berpindah antara berbagai penjadualan antrian selama umur hidupnya. Sistem operasi harus memilih, untuk keperluan penjadualan, memproses antrian-antrian ini dalam cara tertentu. Pemilihan proses dilaksanakan oleh penjadual yang tepat/ cocok. Dalam sistem batch, sering ada lebih banyak proses yang diserahkan daripada yang dapat dilaksanakan segera. Proses ini dipitakan/ disimpan pada suatu alat penyimpan masal (biasanya disk), dimana proses tersebut disimpan untuk eksekusi dilain waktu. Penjadualan long term, atau penjadual job, memilih proses dari pool ini dan mengisinya kedalam memori eksekusi.
Gambar 5 : Addition o f medium-term scheduling to the queueing diagram
3. Context Switch
Mengganti CPU ke proses lain memerlukan penyimpanan suatu keadaan proses lama (state of old process) dan kemudian beralih ke proses yang baru. Tugas tersebut diketahui sebagai alih konteks (context switch). Alih konteks sebuah proses digambarkan dalam PCB suatu proses; termasuk nilai dari CPU register, status proses dan informasi managemen memori. Waktu context switch sangat begantung pada dukungan perangkat keras. Sebagai contoh, prosesor seperti UltraSPARC menyediakan beberapa set register. Sebuah proses context switch hanya memasukkan perubahan pointer ke set register yang ada saat itu. Tentu saja, jika proses aktif yang ada lebih banyak daripada proses yang ada pada set register, sistem menggunakan bantuan untuk meng-copy data register dari dan ke memori, sebagaimana sebelumnya. Semakin kompleks suatu sistem operasi, semakin banyak pekerjaan yang harus dilakukan selama context switch. Bisa dilihat pada Bab Memori, teknik managemen memori tingkat lanjut dapat mensyaratkan data tambahan untuk diganti dengan tiap data. Sebagai contoh, ruang alamat dari proses yang ada saat itu harus dijaga sebagai ruang alamat untuk proses yang akan dikerjakan berikutnya. Bagaimana ruang alamat dijaga, berapa banyak pekerjaan dibutuhkan untuk menjaganya, tergantung pada metode managemen memori dari sistem operasi. Akan kita lihat pada Bab Memori, context switch terkadang bisa menyebabkan bottleneck , dan programmer menggunakan struktur baru (threads) untuk menghindarinya kapan pun memungkinkan.

OPERASI PADA PROSES
1. Proses Creation
Secara umum, suatu proses akan memerlukan sumber tertentu (waktu CPU, memori, berkas, perangkat I/O) untuk menyelesaikan tugasnya. Ketika suatu proses membuat sebuah subproses, sehingga subproses dapat mampu untuk memperoleh sumbernya secara langsung dari sistem operasi. Induk mungkin harus membatasi sumber diantara anaknya, atau induk dapat berbagi sebagian sumber (seperti memori berkas) diantara beberapa dari anaknya. Membatasi suatu anak proses menjadi subset sumber daya induknya mencegah proses apa pun dari pengisian sistem yang telalu banyak dengan menciptakan terlalu banyak subproses.
Gambar 6 : Pohon Proses system khas unix
2. Process Termination

Sebuah proses berakhir ketika proses tersebut selesai mengeksekusi pernyataan akhirnya dan meminta sistem operasi untuk menghapusnya dengan menggunakan sistem pemanggilan exit. Pada titik itu, proses tersebut dapat mengembalikan data (keluaran) pada induk prosesnya (melalui sistem pemanggilan wait)
Ada situasi tambahan tertentu ketika terminasi terjadi. Sebuah proses dapat menyebabkan terminasi dari proses lain melalui sistem pemanggilan yang tepat (contoh abort). Biasanya, sistem seperti itu dapat dipanggil hanya oleh induk proses tersebut yang akan diterminasi.

KOMUNIKASI ANTAR PROSES
1. Proses Kooperatif
Proses yang bersifat simultan (concurrent) dijalankan pada sistem operasi dapat dibedakan menjadi 2 yaitu proses independent dan proses kooperatif.
Suatu proses dikatakan independen apabila proses tersebut tidak dapat terpengaruh atau dipengaruhi oleh proses lain yang sedang dijalankan pada sistem. Berarti, semua proses yang tidak membagi data apa pun (baik sementara/ tetap) dengan proses lain adalah independent.
Sedangkan proses kooperatif adalah proses yang dapat dipengaruhi atau pun terpengaruhi oleh proses lain yang sedang dijalankan dalam sistem. Dengan kata lain, proses dikatakan kooperatif bila proses dapat membagi datanya dengan proses lain.
2. Komunikasi Proses Dalam Sistem

Cara lain untuk meningkatkan efek yang sama adalah untuk sistem operasi yaitu untuk menyediakan alat-alat proses kooperatif untuk berkomunikasi dengan yang lain lewat sebuah komunikasi dalam proses (IPC = Inter-Process Communication).
IPC menyediakan sebuah mekanisme untuk mengizinkan proses-proses untuk berkomunikasi dan menyelaraskan aksi-aksi mereka tanpa berbagi ruang alamat yang sama.
IPC adalah khusus digunakan dalam sebuah lingkungan yang terdistribusi dimana proses komunikasi tersebut mungkin saja tetap ada dalam komputer-komputer yang berbeda yang tersambung dalam sebuah jaringan.
IPC adalah penyedia layanan terbaik dengan menggnakan sebuah sistem penyampaian pesan, dan sistem-sistem pesan dapat diberikan dalam banyak cara.
3. Sinkronisasi
Komunikasi antara proses membutuhkan place by calls untuk mengirim dan menerima data primitive. Terdapat rancangan yang berbeda-beda dalam implementasi setiap primitive. Pengiriman pesan mungkin dapat diblok (blocking) atau tidak dapat dibloking (nonblocking) – juga dikenal dengan nama sinkron atau asinkron.
Pengiriman yang diblok: Proses pengiriman di blok sampai pesan diterima oleh proses penerima (receiving process) atau oleh mailbox.
Pengiriman yang tidak diblok: Proses pengiriman pesan dan mengkalkulasi operasi.
Penerimaan yang diblok: Penerima mem blok samapai pesan tersedia.
Penerimaan yang tidak diblok: Penerima mengembalikan pesan valid atau null.
4. Buffering

Baik komunikasi itu langsung atau tak langsung, penukaran pesan oleh proses memerlukan antrian sementara. Pada dasarnya, terdapat tiga jalan dimana antrian tersebut diimplementasikan:
a.
Kapasitas nol: antrian mempunyai panjang maksimum 0, maka link tidak dapat mempunyai penungguan pesan (message waiting). Dalam kasus ini, pengirim harus memblok sampai penerima menerima pesan.

b. Kapasitas terbatas: antrian mempunyai panjang yang telah ditentukan, paling banyak n pesan dapat dimasukkan. Jika antrian tidak penuh ketika pesan dikirimkan, pesan yang baru akan menimpa, dan pengirim pengirim dapat melanjutkan eksekusi tanpa menunggu. Link mempunyai kapasitas terbatas. Jika link penuh, pengirim harus memblok sampai terdapat ruang pada antrian.

c. Kapasitas tak terbatas: antrian mempunyai panjang yang tak terhingga, maka, semua pesan dapat menunggu disini. Pengirim tidak akan pernah di blok.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: