Proses berisi instruksi dan data, program counter dan semua register pemroses, dan stack bersis data sementara. Proses merupakan unit kerja terkecil yang secara individu memiliki sumber daya dan dijadwalkan sistem operasi. Hal – hal yang berkaitan dengan proses :
– multiprogramming : manajemen banyak proses pada satu pemroses, contoh komputer pribadi bersifat workstation artinya sistem pemroses tunggal yang dapat menjalankan banyak program/task seperti MS-Windows 3.0, MS-Windows NT, OS/2 dan Macintosh system 7. Program yang dijalankan sebenarnya bersifat independent dan one program at any instant (satu program pada satu saat).
– Multiprocessing : manajemen banyak proses dalam satu komputer, contoh pada sistem operasi microsoft windows NT, UNIX, Linux telah menyediakan fasilitas multiprocessing.
– Distributed processing : manajemen banyak proses yang dieksekusi di banyak sistem komputer yang tersebar.
Kebutuhan utama pengendali proses :
– Saling melanjutkan (interleave) : bertujuan memaksimumkan penggunaan pemroses sambil memberi waktu tanggap.
– Mengikuti kebijaksanaan tertentu : SO harus mengalokasikan sumber daya ke proses mengikuti kebijaksaan yang sudah ditentukansambil menghindari deadlock.
– Mendukung komunikasi antar proses dan pencipta proses : SO harus dapat mengetahui state masing – masing proses dan merekam semua perubahan yang terjadi secara dinamis (berguna untuk penjadwalan dan memutuskan alokasi sumber daya).
1. Diagram state proses
Diagram state dasar terdiri dari 3 keadaan : proses akan berada pada salah satu dari tiga state :
Status
Deskripsi
Running
Pemroses sedang mengeksekusi intruksi proses
Ready
Proses siap dieksekusi tapi pemroses tidak tersedia untuk eksekusi
Blocked
Proses menunggu kejadian untuk melengkapi tugasnya seperti :
– selesainya operasi perangkat I/O
– tersedianya memori
– datangnya pesan
Hubungan ketiga state tersebbut dapat digambarkan :
Image
– Proses yang baru diciptakan akan segera mempunyai state ready
– Proses running menjadi blocked karena sumber daya yang diminta belum tersedia, proses menunggu alokasi sumber daya (event wait)
– Proses running menjadi ready karena penjadwalan memutuskan eksekusi proses lain karena jatah waktu telah habis (time out)
– Proses blocked menjadi ready saat sumber daya yang diminta tersedia
– Proses ready menjadi running karena penjadwal memutuskan penggunaan pemroses untuk proses itu.
1. PCB (Program Control Block)
Sistem operasi memerlukan banyak informasi mengenai proses guna pengelolaan proses, informasi ini berada di PCB. Dalam PCB informasi dibagi atas 3 kelompok :
a. Informasi identifikasi proses : identifikasi berkaitan dengan proses yang unik.
Identifier numerik yang meliputi : prose situ sendiri, siapa proses yang menciptakan dan yang pemakai
b. Informasi status pemroses : berisi register – register pemroses. Jumlah dan jenis register tergantung arsitek komputer. Register tersebut terdiri :
– register yang terlihat pemakai : dapat ditunjuk instruksi bahasa assembly untuk diproses pemroses
– register kendali dan status : untuk mengendalikan operasi pemroses seperti: program counter, PSW dsb.
– Pointer stack : untuk parameter atau alamat prosedur pemanggil dan system call, pointer stack menujuk posisi paling atas dari stack.
c. Informasi Kendali proses yang terdiri atas :
– informasi penjadwalan dan status : untuk menjalankan fungsi penjadwalan : status proses (running, ready, blocked dsb), prioritas (lama menunggu, lama proses dsb) dan kejadian (identitas kejadian yang ditunggu proses)
– penstruktur data : satu proses dapat dikaitkan dengan proses lain dalam satu antrian atau ring atau struktur lainnya.
– Komunikasi antar proses : beragam flag, sinyal dan pesan dapat diasosiasikan dengan komunikasi antara dua proses yang terpisah.
– Kewenangan proses : kewenangan berkaitan dengan memori dan tipe instruksi yang dapat dijalankan.
– Manajemen memori : berisi pointer ke tabel segmen atau page yang menyatakan memori maya proses.
– Kepemilikan dan utilisasi sumber daya : sumber daya yang dikendalikan proses harus diberi tanda : berkas dibuka, pemakaian pemroses dan pemakaian sumber daya lainnya.
2. Operasi – operasi pada proses
Operasi – operasi terhadap proses antara lain :
– penciptaan proses (create a process)
– penghancuran proses (destroy a process)
– penundaan proses (suspend a process)
– pelanjutan kembali proses (resume a process)
– pengubahan prioritas process
– memblok proses
– membangunkan proses
– menjadwal proses
– memungkinkan proses berkomunikasi dengan proses lain
Penciptaan proses melibatkan banyak aktivitas seperti : menamai, menyisipkan, menentukan prioritas, menciptakan PCB dan mangalokasikan sumber daya proses.Kejadian yang dapat menciptakan proses :
– pada lingkungan batch sebagai tanggapan atas job
– pada lingkungan interaktif, terjadi saat pemakai berusaha log on
– sebagai tanggapan suatu aplikasi
– adanya penciptaan proses lain (anak proses)
Pada UNIX : proses diciptakan dengan system call fork : menciptakan kopian proses pemanggil (induk) yang identik.
Pada MS-DOS : system call adalah memuatkan file biner ke memori dan mengeksekusi sebagai anak proses. Pada sistem ini proses induk dan proses anak tidak berjalan paralel.
Penghancuran proses : pada penghancuran proses maka akan melibatkan kegiatan pembebasan proses dari system, antara lain :
– sumber daya yang dipakai dikembalikan
– proses dihancurkan dari tabel sistem
– PCB dihapus
Penghancuran akan lebih rumit bila telah menciptakan proses. Untuk kondisi tersebut maka akan dilakukan pendekatan, antara lain :
– pada beberapa sistem proses-proses turunan dihancurkan saat proses induk dihancurkan secara otomatis
– menganggap proses anak independen terhadap proses induk
Alasan – alasan penghancuran proses :
Penyebab terminasi
Deskripsi
Selesainya proses secara normal
Proses telah berjalan secara lengkap
Batas waktu telah terlewati
Proses telah melewati batas waktu total yang telah dispesifikasikan
Memori tidak tersedia
Keperluan memori lebih banyak daripada yang diesiakan sistem
Pelanggaran terhadap batas memori
Mencoba mengakses lokasi memori yang tidak diijinkan diakses
Terjadi kesalahan karena pelanggaran proteksi
Mencoba menggunakan sumber daya yang tidak diijinkan
Terjadi kesalahan aritmatika
Mencoba perhitungan terlarang, seperti pembagian dengan nol
Waktu telah kadaluwarsa
Telah lama menunggu daripada waktu maksimum yang ditentukan
Instruksi yang tak benar
Berusaha mengeksekusikan instruksi yang tak ada seperti pencabangan
Terjadi usaha memakai instruksi yang tak diijinkan
Menggunakan instruksi yang disimpan untuk sistem operasi
Terjadi kegagalan I/O
Kesalahan muncul pada masukan atau keluaran
Kesalahan pengguna data
Ada data yang tipenya salah atau tidak terinisialisasi
Diintervensi oleh sistem operasi atau operator
Karena alasan tertentu operator mengakhiri proses
Berakhirnya proses induk
Ketika parent berakhir, sistem akan mengakhiri semua anak proses
Atas permintaan dari proses induk
Parent proses biasanya mempunyai otoritas mengakhiri anak proses
Image
4. Implementasi Proses
Setiap proses mempunyai state yang perlu diperhatikan sistem operasi yang dicatat dalam tabel :
a. Tabel informasi manajemen memori untuk menjaga keutuhan memori utama dan memori skunder, yang memuat : alokasi memori utama yang dipakai pemroses, alokasi memori skunder yang terpakai, atribut segmen utama dan sekunder dan informasi lain yang digunakan untuk pengelolaan memori.
b. Tabel informasi manajemen masukan /keluaran : mengelola perangkat I/O dan mengetahui statusnya dan lokasi memori utama yang digunakan transfer data
c. Tabel sistem informasi : berisi informasi eksetensi file, lokasi pada memori sekunder, statusnya dan informasi lainnya.
d. Tabel proses mengelola informasi proses di sistem operasi, lokasinya memori, status dan atribut lainnya.
Elemen citra proses
Deskripsi
Data pemakai
Bagian dapat dimodifikasi seperti data program, daerah stack pemakai
Program pemakai
Program biner yang dieksekusi
Stack sistem
Menyimpan parameter dan alamat pemanggilan untk prosedur dan system call
PCB
Informasi yang diperlukan sistem operasi dalam mengendalikan proses
Struktur umum tabel kendali pada system operasi
Image
PCB dan senarai proses
PCB dapat dibaca dan atau dimodifikasi rutin sistem operasi seperti penjadwalan, alokasi sumber daya, pemroses interupsi, monitoring dan analisis kinerja.
Untuk menyatakan senarai proses di sistem operasi dibuat senarai PCB
Image
Pengaksesan informasi di PCB
Setiap proses dilengkapi denga iD yang unik digunakan sebagai indeks ke tabel untuk mengambil PCB, kesulitan yang terjadi disebabkan oleh proteksi terhadap PCB, dua masalah utama proteksi PCB :
a. Bug (kesalahan) pada rutin tunggal misalnya interrupt handler dapat merusak PCB
b. Perubahan rancangan struktur dan semantiks PCB
Kedua masalah tersebut diatasi dengan rutin penanganan PCB dalam pengaksesan. Tugas rutin ini adalah memproteksi PCB dan menjadi perantara pembacaan dan penulisan PCB. Sehingga masalah diatas dapat diatasi karena :
a. Kesalahan dapat dicegah sehingga PCB tidak rusak
b. Antar muka terhadap rutin – rutin lain masih dapat dijaga meskipun rincian PCB diubah.