Dwinanda Kinanti Suci Sekarhati

Sistem Operasi (Pertemuan 3)

October9

Halo semuaaa~ Hari ini kita bahas pelajaran “Proses dan Threads”. Kita mulai aja, yaaa ūüôā

Proses adalah program yang sedang dieksekusi. Eksekusi proses dilakukan secara berurutan. Dalam suatu proses terdapat program counter, stack dan daerah data. Pada saat proses dieksekusi, akan terjadi perubahan status. Status proses didefiniskan sebagai bagian dari aktivitas proses yang sedang berlangsung saat itu.

Status Proses terdiri dari 6 status yaitu:

  • 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.


Informasi yang terdapat pada setiap proses meliputi :

  • Status Proses. New, ready, running, waiting dan terminated.
  • Program Counter. Menunjukkan alamat berikutnya yang akan dieksekusi oleh proses tersebut.
  • CPU Registers. Register bervariasi tipe dan jumlahnya tergantung arsitektur komputer yang bersangkutan. Register-register tersebut terdiri-atas: accumulator, index register, stack pointer, dan register serbaguna dan beberapa informasi tentang kode kondisi. Selama Program Counter berjalan, status informasi harus disimpan pada saat terjadi interrupt.
  • Informasi Penjadwalan CPU. Informasi tersebut berisi prioritas dari suatu proses, pointer ke antrian penjadwalan, dan beberapa parameter penjadwalan yang lainnya.
  • Informasi Manajemen Memori. Informasi tersebut berisi nilai (basis) dan limit register, page table, atau segment table tergantung pada sistem memory yang digunakan oleh SO.
  • Informasi Accounting. Informasi tersebut berisi jumlah CPU dan real time yang digunakan, time limits, account numbers, jumlah job atau proses, dll.

 

Penjadwalan Proses

Jenis-jenis antrian penjadwalan adalah sebagai berikut :

  • Job Queue. Semua proses yang masuk pada suatu sistem akan diletakkan ke dalam job queue.
  • Ready Queue. Sedangkan proses-proses yang ada di memori utama dan menunggu untuk dieksekusi diletakkan pada suatu list yang disebut dengan ready queue.
  • Device Queue. Deretan proses yang sedang menunggu peralatan I/O tertentu disebut dengan device queue.

Scheduler: Longterm-Scheduler/job scheduler (menyeleksi proses-proses mana yang harus dibawa ke ready queue yang terjadi dan mengontrol tingkat multiprogramming. Terjadi dalam hitungan menit/detik), Short-term Scheduler/CPU scheduler (memilih proses-proses yang siap untuk dieksekusi dan mengakolakasikan CPU ke salah satu dari proses-proses tersebut dan terjadi dalam milidetik), dan Medium-term scheduler

Secara umum, proses dapat digambarkan sebagai :

  • I/O bound process, yaitu proses-proses yang membutuhkan lebih banyak waktu untuk menjalankan I/O daripada melakukan komputasi, sehingga CPU burst yang dibutuhkan lebih singkat.
  • CPU bound process, yaitu proses-proses yang membutuhkan lebih banyak waktu untuk melakukan komputasi daripada menjalankan I/O sehingga CPU burst yang dibutuhkan lebih lama.

Ketika CPU berpindah dari proses satu ke proses lainnya, sistem harus menyimpan status dari proses yang lama dan membuka state proses baru yang sudah disimpan. Contex switch adalah proses penyimpanan status proses dan mengambil status proses yang baru pada saat terjadi switching yang waktunya tergantung pada perangkat keras yang digunakan.

 

Operasi Proses

Terdapat dua operasi pada proses, yaitu pembuatan proses (process creation) dan penghentian proses (process deletion).

Aktifitas pembuatan proses :

  • Memberi identitas (nama) pada proses yang dibuat
  • Menyisipkan proses pada list proses atau tabel proses
  • Menentukan prioritas awal proses
  • Membuat PCB
  • Mengalokasikan resource awal bagi proses tersebut

Beberapa kejadian yang menyebabkan pembuatan suatu proses baru:

  • Pada lingkungan batch sebagai tambahan atas pemberian job. Setelah menciptakan proses baru, sistem operasi melanjutkan untuk membaca job selanjutnya
  • Pada ingkungan interaktif, pada saat user baru saja logam
  • Sebagai tanggapan atas suatu aplikasi (seperti: mencetak file, sistem operasi dapat menciptakan proses yang akan mengelola pencetakan itu)
  • Proses menciptakan proses lain (child).

Penghentian proses => jika telah menyelesaikan pernyataan terakhir, dan meminta pada sistem operasi untuk menghapusnya dengan menggunakan system call exit. Proses mengembalikan semua data (output) ke parent proses melalui system call wait. Kemudian proses dihapus dari list atau tabel sistem, dilanjutkan dengan menghapus PCB.

Parent dapat menghentikan eksekusi proses child dengan menggunakan system call abort. Proses anak dihentikan parent karena beberapa alasan, antara lain :

  • Child mengalokasikan sumber daya melampaui batas
  • Tugas child tidak dibutuhkan lebih lanjut
  • Parent berhenti, karena system operasi tidak mengijinkan child untuk melanjutkan jika parent berhenti dan terminasi dilanjutkan

(Akan tambah update info tentang proses kalau ada kesempatan lain)

 

Thread

Thread atau lighweight process (LWP) adalah suatu unit dasar dari CPU utilization yang berisi program counter, kumpulan register, dan ruang stack. Thread akan bekerjasama dengan thread yang lainnya dalam hal penggunaan bagian kode, bagian data, dan resource sistem operasi, seperti open file dan sinyal secara kolektif yang sering disebut dengan task.

Seperti halnya proses, thread memiliki status: ready, blocked, running dan 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. Namun, tidak saling bebas, Sebab semua thread dapat mengakses setiap alamat dalam satu task, thread dapat membaca dan menulisi stack dari thread yang lainnya. Sehingga tidak ada proteksi antara satu thread terhadap thread yang lainnya. Suatu proses dapat terdiri dari satu thread (single thread) dan beberapa thread (multi thread).

Thread terdiri dari dua bentuk:

  • User thread:¬†¬†Thread yang diatur dengan menggunakan pustaka user level thread. Contoh:¬†POSIX Pthreads, Mach C-threads dan Solaris threads.
  • Kernel thread: Thread yang didukung oleh Kernel. Contoh: Windows 95/98/NT/2000, Solaris, Tru64 UNIX, BeOS dan Linux.

Keuntungan sistem thread adalah pada respon lebih cepat, menggunakan resource bersama-sama, lebih ekonomis dan meningkatkan utilitas arsitektur mikroprosessor.

posted under Uncategorized

Email will not be published

Website example

Your Comment: