Minggu, 22 Maret 2015

Tugas SO 4 (Proses dan thread)

 Selamat siang para kaumla muda, hari ini saya diberikan tugas untuk membuat postingan di blog bertema proses dan thread. langsung saja tampa membuang banyak waktu silahkan dinikmati ilmunya.


proses
Devinisi.
Proses adalah program yang sedang dieksekusi. eksekusi proses dilakukan secara berurutan. 
 Dalam suatu proses terdapat program counter, stack dan daerah data.


Status Proses.
Meskipun tiap-tiap proses terdiri dari suatu kesatuan yang terpisah namun adakalanya proses-proses tersebut butuh untuk saling berinteraksi. Satu proses bisa dibangkitkan dari output proses lainnya sebagai input.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 :
a.New: proses sedang dibuat.
b.Running: proses sedang dieksekusi.
c.Waiting: proses sedang menunggu beberapa event yang akan terjadi (seperti menunggu untuk menyelesaikan I/O atau menerima sinyal).
d.Ready: proses menunggu jatah waktu dari CPU untuk diproses.
e.Terminated: proses telah selesai dieksekusi.
Process Control Block (PCB).
Masing-masing proses direpresentasikan oleh Sistem Operasi dengan menggunakan Process Control Block (PCB).
Informasi yang terdapat pada setiap proses meliputi:
a. Status Proses. New, ready, running, waiting dan terminated.
b.Program Counter. Menunjukkan alamat berikutnya yang akan dieksekusi oleh proses tersebut.
c. 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.
e. Informasi Manajemen Memori. Informasi tersebut berisi nilai (basis) dan limit register, page table, atau segment table tergantung pada sistem memory yang digunakan oleh SO.
f. Informasi Accounting. Informasi tersebut berisi jumlah CPU dan real time yang digunakan, time limits, account numbers, jumlah job atau proses, dll.
g. Informasi Status I/O. Informasi tersebut berisi deretan I/O device (seperti tape driver) yang dialokasikan untuk proses tersebut, deretan file yang dibuka, dll. 
 Thread
Devinisi.
Thread adalah unit dasar dari utilitas CPU. Di dalamnya terdapat ID thread, program counter, register, dan stack. Dan saling berbagi dengan thread lain dalam proses yang sama.
 
Macam-macam thread.
Single threading : proses hanya mengeksekusi satu thread dalam satu waktu.
Multi-threading : proses dapat mengeksekusi sejumlah thread dalam satu waktu.

Model MultiTrading:
One to one: Memetakan setiap user thread ke dalam 1 kernel thread.


Kelebihan: Model one-to-one lebih sinkron daripada model many-to-one karena mengizinkan thread lain untuk berjalan ketika suatu thread membuat pemblokingan terhadap sistem pemanggilan, hal ini juga membuat multiple thread bisa berjalan secara parallel dalam multiprosesor .
Kekurangan: Dalam pembuatan user thread diperlukan pembuatan korespondensi thread pengguna. Karena dalam proses pembuatan kernel thread dapat mempengaruhi kinerja dari aplikasi, maka kebanyakan dari implementasi model ini membatasi jumlah thread yang didukung oleh sistem.

Model ini ada pada Windows NT dan OS/2.

One to Many: memetakan beberapa tingkatan thread user hanya ke satu buah kernel thread.





Kelebihan: Managemen proses thread dilakukan oleh (di ruang) pengguna, sehingga menjadi lebih efisien.
Kekurangan: multi thread tidak dapat berjalan atau bekerja secara paralel di dalam multiprosesor karena hanya satu thread saja yang bisa mengakses kernel dalam suatu waktu.

Model ini ada pada Solaris Green dan GNU Portable.

Many to Many : Membolehkan setiap tingkatan user thread dipetakan ke banyak kernel thread.

Kelebihan:  * Developer dapat membuat user thread sebanyak yang diperlukan dan kernel thread yang bersangkutan dapat berjalan secara parallel pada multiprocessor.
* Dan ketika suatu thread menjalankan blocking system call maka kernel dapat menjadwalkan thread lain untuk melakukan eksekusi.
Kekurangan:
* Developer dapat membuat user thread sebanyak mungkin, tetapi konkurensi tidak dapat diperoleh karena hanya satu thread yang dapat dijadwalkan oleh kernel pada suatu waktu.
Model ini ada pada Solaris, IRIX, dan Digital UNIX.
sekian postingan singkat dari saya, semoga bermanfaat bagi para kaumla muda semua.