Anda di halaman 1dari 29

CRITICAL BOOK REPORT

PROCESS DAN THREAD

OLEH:

MOHAMMED HAFIZH AL-AREEF 4193250014


AYU HADI LESTARI 4191250003
ELIEZER SEMBIRING 4193250026
RULLI PRASETIO BANE 4193550024
SILVYA AJENG SARASKI 4193550004

KELAS : ILMU KOMPUTER B 2019


KELOMPOK : 1 (SATU)
MATA KULIAH : STRUKTUR DATA
DOSEN PENGAMPU : ZULFAHMI INDRA, S.Si, M.Cs

ILMU KOMPUTER
UNIVERSITAS NEGERI MEDAN
FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM
2020
KATA PENGANTAR

Bismillahirrahmaanirrahim

Assalamu’alaikum Wr Wb

Puji dan syukur penyusun panjatkan ke Khadirat Allah SWT, karena atas curahan
Rahmat dan Karunia-Nya penyusun dapat menyelesaikan makalah Critical Book Review
ini dengan baik.

Sholawat beserta salam semoga selamanya tercurah limpahkan kepada baginda


alam yakni Nabi Muhammad SAW.

Makalah Critical Book Review yang berjudul “Process dan Thread” ini penyusun
buat untuk memenuhi salah satu tugas mata kuliah Sistem Operasi.

Terimakasih penyusun ucapkan kepada semua pihak yang telah berperan dalam
pembuatan makalah ini, khususnya dosen mata kuliah Sistem Operasi, sehingga makalah
ini dapat terselesaikan.

Orang bijak mengatakan “tiada gading yang tak retak”, sehingga makalah ini pun
masih jauh dari kesempurnaan, untuk itu kritik dan saran yang bersifat membangun sangat
penyusun harapkan guna perbaikan pembuatan makalah dimasa yang akan datang.

Akhirnya, penyusun berharap semoga makalah ini dapat bermanfaat bagi pembaca
sekalian.

Wassalamu’alaikum Wr. Wb.

Medan, 17 Oktober 2020

Kelompok Penyusun

i
DAFTAR ISI

KATA PENGANTAR..............................................................................................i

DAFTAR ISI...........................................................................................................ii

BAB I PENDAHULUAN

A. Rasionalisasi Pentingnya CBR..............................................................1

B. Tujuan Penulisan CBR..........................................................................1

C. Manfaat CBR.........................................................................................1

D. Identitas Buku........................................................................................2

BAB II PEMBAHASAN

A. Pembahasan Isi Buku......................................................................................... 3

I. Buku Pertama......................................................................................... 3

II. Buku Kedua.............................................................................................. 8

III. Buku Ketiga........................................................................................... 13

B. Kelebihan Dan Kekurangan Buku.................................................................23

I. Kelebihan Buku................................................................................... 23

II. Kekurangan Buku............................................................................... 24

BAB III PENUTUP

A. Kesimpulan..........................................................................................25

B. Daftar Pustaka.....................................................................................26

ii
BAB I
PENDAHULUAN

A. RASIONALISASI PENTINGNYA CBR


Keterampilan membuat CBR pada penulis dapat menguji kemampuan dalam
meringkas dan menganalisis beberapa buku buku, mengenal dan memberi nilai
serta mengkritik sebuah karya tulis yang dianalisis. Seringkali kita bingung memilih
buku referensi untuk kita baca dan pahami,terkadang kita hanya memilih satu buku
untuk dibaca tetapi hasilnya masih belum memuaskan misalnya dari segi analisis
bahasa dan pembahasan, oleh karena itu penulis membuat CBR Struktur Data ini
untuk mempermudah pembaca dalam memilih buku referensi terkhusus pada
pokok bahasan tentang Process dan Thread.

B. TUJUAN PENULISAN CBR


Mengetahui kelebihan dan kekurangan buku-buku tentang Process dan Thread.
Menkritisi dua buku tentang Process dan Thread, yang dikritik dalam buku tersebut yaitu
kelengkapan pembahasannya, dan keterkaitan antara babnya.

C. MANFAAT CBR
1. Menambah wawasan pengetahuan tentang Process dan Thread.
2. Mempermudah pembaca mendapatkan inti dari sebuah buku yang telah
dilengkapi dengan ringkasan buku, pembahasan isi buku, serta kekurangan dan
kelebihan buku tersebut.
3. Melatih mahasiswa merumuskan serta mengambil kesimpulan-kesimpulan dari
berbagai penjelasan deskripsi tentang buku-buku yang akan dianalisis.

1
D. IDENTITAS BUKU
I. Buku Pertama
1. Judul buku : Teori Dan Praktek Sistem Operasi
2. Pengarang : Zaid Romegar Mair
3. Kota terbit : Yogyakarta
4. Tahun terbit : 2018
5. Penerbit : CV BUDI UTAMA
6. Tebal buku : 372 halaman
7. ISBN : 978–602–475–682–6

II. Buku Kedua


1. Judul buku : Sistem Operasi
2. Pengarang : Dr. Hartono, S.Kom, M.Kom
3. Kota terbit : Medan
4. Tahun terbit : 2018
5. Penerbit : SEFA BUMI PERSADA
6. Tebal buku : 238 halaman
7. ISBN : 978-602-6960-79-5

III. Buku Ketiga


1. Judul buku : Algoritma dan Pemrograman
2. Pengarang : Roslina
3. Kota terbit : Yogyakarta
4. Tahun terbit : 2012
5. Penerbit : Penerbit Andi
6. Tebal buku : 104 halaman
7. ISBN : 978 – 979 – 29 – 3417 – 5

2
BAB II
PEMBAHASAN
A. PEMBAHASAN ISI BUKU
I. Buku Pertama
A. Definisi Proses
Secara informal, proses adalah program dalam eksekusi. Suatu proses adalah lebih
dari kode program, dimana kadang kala dikenal sebagai bagian tulisan. Proses juga
termasuk aktivitas yang sedang terjadi, sebagaimana digambarkan oleh nilai pada
program counter dan isi dari daftar prosesor/ processor’s register. Suatu proses
umumnya juga termasuk process stack, yang berisikan data temporer (seperti
parameter metoda, address yang kembali, dan variabel lokal) dan sebuah data section,
yang berisikanvariabel global.
Dapat ditekankan bahwa program itu sendiri bukanlah sebuah proses, suatu
program adalah satu entitas pasif, seperti isi dari sebuah berkas yang disimpan
didalam disket, sebagaimana sebuah proses dalam suatu entitas aktif, dengan sebuah
program counter yang mengkhususkan pada instruksi selanjutnya untuk dijalankan
dan seperangkat sumber daya/ resource yang berkenaan dengannya.
Walau dua proses dapat dihubungkan dengan program yang sama, program
tersebut dianggap dua urutan eksekusi yang berbeda. Sebagai contoh, beberapa
pengguna dapat menjalankan copy yang berbeda pada mail program, atau pengguna
yang sama dapat meminta banyak copy dari program editor.
Tiap-tiap proses ini adakah proses yang berbeda dan walau bagian tulisan-text
adalah sama, data section bisa saja bervariasi. Terlihat umum juga untuk memiliki
proses yang menghasilkan banyak proses begitu ia bekerja.

B. Siklus Proses
Sebagaimana proses bekerja, maka proses tersebut merubah state (keadaan statis/
asal). Status dari sebuah proses didefinisikan dalam bagian oleh aktivitas yang ada
dari proses tersebut.
Tiap proses mungkin adalah satu dari keadaan berikut ini:
 New: Proses sedang dikerjakan/ dibuat.

3
 Running: Instruksi sedang dikerjakan.
 Waiting: Proses sedang menunggu sejumlah kejadian untuk terjadi (seperti
sebuah penyelesaian I/Oatau penerimaan sebuah tanda/ signal).
 Ready: Proses sedang menunggu untuk ditugaskan pada sebuah prosesor
 Terminated: Proses telah selsesai melaksanakan tugasnya/ mengeksekusi.
Nama-nama diatas adalah arbitrer/berdasar opini, istilah tersebut bervariasi pada
sistem operasi. Keadaan yang digambarkan dapat ditemukan pada seluruh sistem.
Namun, sistem operasi tertentu juga lebih baik menggambarkan keadaan/status
proses. Penting untuk diingat bahwa hanya satu proses dapat berjalan pada prosesor
dalam satu waktu.

C. Proses Control Block


Tiap proses yang digambarkan dalam sistem operasi oleh sebuah Process Control
Block (PCB) disebut control block. PCB berisikan banyak bagian dari informasi yang
berhubungan dengan sebuah proses yang spesifik, termasuk :
 Keadaan proses: Keadaan new, ready, running, waiting, halted, dan lain-lain.
 Program counter: Counter mengindikasikan address dari perintah selanjutnya
untuk dijalankan pada proses ini.
 CPU register: Register bervariasi dalam jumlah dan jenis, tergantung pada
rancangan komputer.
 Register tersebut termasuk accumulator, index register, stack pointer, general-
puposes register, ditambah code information pada kondisi apa pun. Bersamaan

4
dengan program counter, keadaan/ status informasi harus disimpan ketika
gangguan terjadi, untuk memungkinkan proses tersebut berjalan/bekerja
dengan benar setelahnya.
 Informasi managemen memori: Informasi ini dapat termasuk suatu informasi
sebagai nilai dari dasar dan batas register, tabel page/ halaman, atau tabel
segmen tergantung pada sistem memori yangdigunakan oleh sistem operasi.
 Informasi pencatatan: Informasi ini termasuk jumlah dari CPU dan waktu riil
yang digunakan, batas waktu, jumlah akun, jumlah job atau proses, dll.
 Informasi status I/O: Informasi termasuk daftar dari perangkat I/O yang di
gunakan pada proses ini, daftar open berkas dan banyak lagi.
 PCB hanya berfungsi sebagai tempat menyimpan/ gudang untuk informasi
apa pun yang dapat bervariasi dari proses ke proses.

D. Definisi Thread

5
Thread merupakan cara dari komputer untuk menjalankan dua atau lebih task
dalam waktu bersamaan, sedangkan multithreading adalah cara komputer untuk
membagi-bagi pekerjaan yang dikerjakan sebagian-sebagian dengan cepat sehingga
menimbulkan efek seperti menjalakan beberapa task secara bersamaan walaupun
otaknya hanya satu.

E. MultiThreading
Multiprocessing merupakan penggunaan dua atau lebih CPU dalam sebuah sistem
komputer. Multitasking merupakan metode untuk menjalankan lebih dari satu proses
dimana terjadi pembagian sumberdaya seperti CPU. Multithreading adalah cara
pengeksekusian yang mengizinkan beberapa thread terjadi dalam sebuah proses,
saling berbagi sumber daya tetapi dapat dijalankan secara independen.
Keuntungan dari sistem yang menerapkan multithreading dapat kita kategorikan
menjadi 4 bagian:
1. Responsif. Aplikasi interaktif menjadi tetap responsif meskipun sebagian dari
program sedang diblok atau melakukan operasi lain yang panjang.
Umpamanya, sebuah thread dari web browser dapat melayani permintaan
pengguna sementara thread yang lain berusaha menampilkan gambar.

2. Berbagi sumber daya. Beberapa thread yang melakukan proses yang sama
akan berbagi sumber daya. Keuntungannya adalah mengizinkan sebuah
aplikasi untuk mempunyai beberapa thread yang berbeda dalam lokasi
memori yang sama.

3. Ekonomis. Pembuatan sebuah proses memerlukan pengalokasian memori dan


sumber daya. Alternatifnya adalah dengan menggunakan thread, karena thread
membagi memori dan sumber daya yang dimilikinya sehingga lebih ekonomis
untuk membuat thread dan context switching thread. Akan susah mengukur
perbedaan waktu antara thread dan switch, tetapi secara umum pembuatan dan
pengaturan proses akan memakan waktu lebih lama dibandingkan dengan
thread. Pada Solaris, pembuatan proses memakan waktu 30 kali lebih lama

6
dibandingkan pembuatan thread sedangkan proses context switch 5 kali lebih
lama dibandingkan context switching thread.

4. Utilisasi arsitektur multiprosesor. Keuntungan dari multithreading dapat


sangat meningkat pada arsitektur multiprosesor, dimana setiap thread dapat
berjalan secara paralel di atas procesor yang berbeda. Pada arsitektur
processor tunggal, CPU menjalankan setiap thread secara bergantian tetapi hal
ini berlangsung sangat cepat sehingga menciptakan ilusi paralel, tetapi pada
kenyataanya hanya satu thread yang dijalankan CPU pada satu-satuan waktu.

F. Model MultiThreading
Terdapat beberapa terminologi yaitu :
1. Thread pengguna : Thread yang pengaturannya dilakukan oleh pustaka thread
pada tingkatan pengguna. Karena pustaka yang menyediakan fasilitas untuk
pembuatan dan penjadwalan thread, thread pengguna cepat dibuat dan
dikendalikan.
2. Thread Kernel : Thread yang didukung langsung oleh kernel. Pembuatan,
penjadwalan dan manajemen thread dilakukan oleh kernel pada kernel space.
Karena dilakukan oleh sistem operasi, proses pembuatannya akan lebih lambat
jika dibandingkan dengan thread pengguna.

1. Model Many-to-One

7
Model ini memetakan beberapa thread tingkatan pengguna ke sebuah thread.
tingkatan kernel. Pengaturan thread dilakukan dalam ruang pengguna
sehingga efisien. Hanya satu thread pengguna yang dapat mengakses thread
kernel pada satu saat. Jadi Multiple thread tidak dapat berjalan secara paralel
pada multiprosesor. Contoh: Solaris Green Threads dan GNU Portable
Threads.

2. Model One-to-One.
Model ini memetakan setiap thread tingkatan pengguna ke setiap thread. Ia
menyediakan lebih banyak concurrency dibandingkan model Many-to-One.
Keuntungannya sama dengan keuntungan thread kernel. Kelemahan model ini
ialah setiap pembuatan thread pengguna memerlukan tambahan thread kernel.
Karena itu, jika mengimplementasikan sistem ini maka akan menurunkan
kinerja dari sebuah aplikasi sehingga biasanya jumlah thread dibatasi dalam
sistem. Contoh: Windows NT/XP/2000, Linux, Solaris 9.

3. Model Many-to-Many.
Model ini memultipleks banyak thread tingkatan pengguna ke thread kernel
yang jumlahnya sedikit atau sama dengan tingkatan pengguna. Model ini
mengizinkan developer membuat thread sebanyak yang ia mau tetapi
concurrency tidak dapat diperoleh karena hanya satu thread yang dapat
dijadwalkan oleh kernel pada suatu waktu. Keuntungan dari sistem ini ialah
kernel thread yang bersangkutan dapat berjalan secara paralel pada
multiprosessor.

II. Buku Kedua


A. Definisi Proses
Sebuah proses adalah sebuah peristiwa adanya sebuah proses yang dapat
dieksekusi. Sebagai sebuah eksekusi proses, maka hal tersebut membutuhkan
perubahan keadaan. Keadaan dari sebuah proses dapat didefinisikan oleh aktivitas
proses tertentu tersebut. Setiap proses mungkin menjadi satu dari beberapa state

8
berikut, antara lain: new, ready, running, waiting, atau terminated. Setiap proses
direpresentasikan ada sistem operasi berdasarkan proses-control-block (PCB)-nya.
Sebuah proses, ketika sedang tidak dieksekusi, ditempatkan pada antrian yang
sama. Disini ada 2 kelas besar dari antrian dalam sebuah sistem operasi: permintaan
antrian I/O dan ready queue. Ready queue memuat semua proses yang siap untuk
dieksekusi dan yang sedang menunggu untuk dijalankan pada CPU. Setiap proses
direpresentasikan oleh sebuah PCB, dan PCB tersebut dapat digabungkan secara
bersamaan untuk mencatat sebuah ready queue. Penjadwalan Long-term adalah
pilihan dari proses-proses untuk diberi izin menjalankan CPU. Normalnya,
penjadualan long-term memiliki pengaruh yang sangat besar bagi penempatan
sumber, managemen memori. Penjadualan Short-term adalah pilihan dari satu proses
dari ready queue.
Proses-proses pada sistem dapat dieksekusi secara berkelanjutan. Disini ada
beberapa alasan mengapa proses tersebut dapat dieksekusi secara berkelanjutan:
pembagian informasi, penambahan kecepatan komputasi, modularitas, dan
kenyamanan atau kemudahan. Eksekusi secara berkelanjutan menyediakan sebuah
mekanisme bagi proses pembuatan dan penghapusan.

B. Operasi Proses

9
a. Pembuatan Proses
Suatu proses dapat membuat beberapa proses baru, melalui sistem
pemanggilan pembuatan proses, selama jalur eksekusi. Pembuatan proses
dinamakan induk proses, sebagaimana proses baru disebut anak dari proses
tersbut. Tiap proses baru tersebut dapat membuat proses lainnya, membentuk
suatu pohon proses.
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 sub-proses 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 sub-proses.
Sebagai tambahan pada berbagai sumber fisik dan logis bahwa suatu
proses diperoleh ketika telah dibuat, data pemula (masukan) dapat turut lewat
oleh induk proses sampai anak proses. Sebagai contoh, anggap suatu proses
yang fungsinya untuk menunjukkan status sebuah berkas, katakan F1, pada
layar terminal.

b. Proses yang Kooperatif


Proses yang bersifat simultan (concurrent) dijalankan pada sistem operasi
dapat dibedakaan menjadi 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

10
yang sedang dijalankan dalam sistem. Dengan kata lain, proses dikatakan
kooperatif bila proses dapat membagi datanya dengan proses lain. Ada empat
alasan untuk penyediaan sebuah lingkungan yang memperbolehkan terjadinya
proses kooperatif.

C. Definisi Thread
Thread adalah sebuah alur kontrol dari sebuah proses. Suatu proses yang
multithreaded mengandung beberapa perbedaan alur kontrol dengan ruang alamat
yang sama. Keuntungan dari multithreaded meliputi peningkatan respon dari user,
pembagian sumber daya proses, ekonomis, dan kemampuan untuk mengambil
keuntungan dari arsitektur multiprosesor. User level thread adalah thread yang
tampak oleh programmer dan tidak diketahui oleh kernel. User level thread secara
tipikal dikelola oleh sebuah library thread di ruang user. Kernel level thread didukung
dan dikelola oleh kernel sistem operasi.

D. Model MultiThreading Java


1. Thread Java
thread didukung selain oleh sistem operasi juga oleh paket library thread.
Sebagai contoh, Win32 library mempunyai API untuk multithreading aplikasi
Windows, dan Pthreads mempunyai fungsi manajmen thread untuk sistem
POSIX-compliant. Java adalah unik dalam mendukung tingkatan bahasa
untuk membuat dan managemen thread.

11
2. Managemen Thread Java
Java menyediakan beberapa fasilitas API untuk mengatur thread, diantaranya
adalah :
 Suspend(): berfungsi untuk menunda eksekusi dari thread yang sedang
berjalan.
 Sleep(): berfungsi untuk menempatkan thread yang sedang berjalan
untuk tidur dalam beberapa waktu.
 Resume(): hasil eksekusi dari thread yang sedang ditunda.
 Stop(): menghentikan eksekusi dari sebuah thread; sekali thread telah
dihentikan dia tidak akan memulainya lagi.

3. Keadaan Thread Java


Sebuah thread java dapat menjadi satu dari 4 kemungkinan keadaan :
 new: sebuah thread pada keadaan ini ada ketika objek dari thread
tersebut dibuat.
 runnable: memanggil start() method untuk mengalokasikan memori
bagi thread baru dalam JVM dan memanggil run() method untuk
membuat objek.
 block: sebuah thread akan diblok jika menampilkan sebuah kalimat
pengeblokan. Contohnya: sleep() atau suspend().
 dead: sebuah thread dipindahkan ke keadaan dead ketika run() method
berhenti atau ketika stop() method dipanggil.

4. Keunggulan Penjadwalan Java Thread


Java Virtual Machine menggunakan prioritas preemtive berdasarkan algoritma
penjadualan. Semua thread Java mempunyai prioritas dan thread dengan
proritas tertinggi dijadualkan untuk dieksekusi oleh Java Virtual Machine.
Jika terjadi dua thread dengan prioritas sama maka digunakan algoritma First
In First Out. Thread lain dijalankan bila terjadi hal-hal berikut ini:

12
 Thread yang sedang dieksekusi keluar dari status runnable misalnya
diblok atau berakhir.
 Thread dengan prioritas yang lebih tinggi dari thread yang sedang
dieksekusi memasuki statusrunnable. Maka thread dengan prioritas
yang lebih rendah ditunda eksekusinya dan digantikan oleh thread
dengan prioritas lebih tinggi.

5. Prioritas Thread
Java Virtual Machine memilih thread yang runnable dengan prioritas tertinggi.
Semua thread java mempunyai prioritas dari 1 sampai 10. Prioritas tertinggi
10 dan berakhir dengan 1 sebagai prioritas terendah. Sedangkan prioritas
normal adalah 5.
 Thread.MIN_PRIORITY = thread dengan prioritas terendah.
 Thread.MAX_PRIORITY = thread dengan prioritas tertinggi.
 Thread.NORM_PRIORITY = thread dengan prioritas normal.

III. Buku Ketiga


A. Konsep Dasar Proses
Proses adalah program yang sedang di jalankan. Proses harus berjalan secara
berurutan (sequential). Sebuah proses terdiri dari program counter (PC), stack dan
data section.
Ada beberapa jenis proses, yaitu :
1. Monoprogramming : Proses dilakukan secara satu per satu sampai proses
tersebut selesai sebelum berpindah ke proses yang lain.
2. Multiprogramming : Melakukan proses satu persatu secara bergantian
dalam waktu yang sangat cepat/ bersamaan (hardware level). Setiap proses
mempunyai satu virtual CPU.
3. Pseudoparallelism : Melakukan lebih dari satu pekerjaan dalam waktu
yang bersamaan / pseudoparallelism.

13
Macam-macam model proses, yaitu :
1. Sequential Process / bergantian : Proses akan dikerjakan terurut dan
bergantian secara satu per satu dalam sebuah sistem operasi.
2. Multiprogramming : Proses akan dieksekusi secara bergantian dalam satu
satuan waktu dengan waktu yang sangat cepat sehingga akan tampak
bersamaan yang diijinkan oleh sistem operasi.
3. CPU Switching : Peralihan prosedur dalam mengolah satu proses ke
proses lainnya.
Berbagai status Dalam proses terbagi atas 5 bagian, yaitu :
1. New yaitu sebuah proses yang sedang dibuat
2. Running yaitu instruksi yang sedang dieksekusi
3. Waiting yaitu sebuah proses sedang menunggu untuk beberapa peristiwa
bisa terjadi
4. Ready yaitu sebuah proses sedang menunggu untuk ditugaskan ke
prosesor
5. Terminated yaitu sebuah proses telah selesai dieksekusi

B. Blok Kontrol Proses (PCB)


Setiap proses memiliki informasi yang disimpan dalam blok kendali proses PCB
(Process Control Block). PCB berisi informasi tentang status proses, PC, register

14
CPU, informasi penjadwalan CPU, informasi pengelolaan memori, informasi
akunting, dan informasi status masukan/keluaran.

CPU dapat berpindah dari satu proses ke proses lainnya jika terjadi interupsi atau
system call. Saat berpindah dari satu proses ke proses lain, CPU menyimpan
informasi proses yang dihentikan ke PCB proses tersebut dan membaca PCB proses
yang akan dieksekusi. Hal ini disebut dengan peralihan konteks (context switch).
Peralihan konteks menyebabkan overhead, karena CPU tidak melakukan pekerjaan
yang berguna pada saat peralihan tersebut. Selain itu, waktu yang dibutuhkan untuk
melakukan peralihan konteks sangat bergantung pada perangkat keras (hardware).

C. Penjadwalan sebuah Proses


Proses-proses memerlukan penjadwalan agar dapat memperoleh siklus CPU.
Sebelum dieksekusi di CPU, proses akan masuk ke dalam salah satu antrian :
1. Antrian Tugas (job queue) yaitu set semua proses yang ada didalam sistem
2. Antrian yang sudah siap (ready queue) yaitu set semua proses berada di
memori utama, siap dan menunggu untuk eksekusi
3. Antrian Perangkat (device or i/o queue) yaitu proses-proses yang menunggu
untuk perangkat I/O

15
Penjadwalan Penjadwalan terbagi menjadi tiga :
1. Penjadwalan jangka panjang ((job scheduler)) : Memilih proses yang harus
dibawa ke antrian yang sudah siap
2. Penjadwalan jangka pendek (CPU scheduler) : Menentukan proses mana yang
akan dieksekusi berikutnya dan mengalokasikan CPU untuk proses tersebut.
3. Penjadwalan jangka menengah : Seandainya ada proses yang bagiannya harus
disimpan sementara ke memori utama, maka pekerjaan ini termasuk tugas dari
penjadwal jangka menengah

D. Penciptaan Proses
Proses induk dan proses anak memiliki beberapa mekanisme dalam cara berbagi
sumber daya :

16
1. Induk dan anak-anak berbagi semua sumber daya
2. Anak berbagi sebagian sumber daya orangtuanya
3. Orang tua dan anak tidak berbagi sumber daya
Program Percabangan Proses secara Terpisah
int main()
{
pid_t pid;
/* fork another process */ pid = fork();
if (pid < 0) { /* error occurred */ fprintf(stderr, "Fork Failed"); exit(-1);
}
else if (pid == 0) { /* child process */ execlp("/bin/ls", "ls", NULL);
}
else { /* parent process */
/* parent will wait for the child to complete */ wait (NULL);
printf ("Child Complete"); exit(0);
}
}

Sebagai contoh, pohon proses pada Sistem Operasi Solaris dapat dilihat pada
gamabar dibawah yang dimulai dengan proses induk Sched dengan pid = 0.

E. Pemberhentian Proses
Induk dapat menghentikan eksekusi pada proses anak (batalkan) yaitu ketika :
1. Anak telah melampaui sumber daya yang dialokasikan
2. Tugas yang diberikan kepada anak tidak lagi diperlukan

17
3. Orangtua sedang keluar terdapat beberapa sistem operasi tidak
memungkinkan anak untuk melanjutkan jika induknya berhenti, maka
nantinya semua anak dihentikan. Hal itu disebut dengan cascading
termination.
F. Komunikasi antar proses
Proses yang saling bekerjasama dapat mempengaruhi atau dipengaruhi oleh
proses-proses lain, termasuk dalam berbagi data. Alasan proses bekerjasama antara
lain:
1. Berbagi informasi
2. Perhitungan yang cepat
3. Modularitas
4. Kenyamanan

Ukuran dari tempat penyimpanan informasi yang dihasilkan atau dikonsumsi


memiliki dua tipe: terbatas (bounded buffer) dan tak tebatas (unbounded buffer).
Proses-proses yang berkomunikasi dengan mekanisme pengiriman pesan tidak perlu
berbagi memori (secara langsung). Namun demikian, implementasi untuk
membangun hubungan komunikasi (communication link) dapat dilakukan baik secara
fisik (misal: berbagi memori, bus perangkat keras) maupun logis (misal: logical
properties).
Fasilitas pengiriman pesan membutuhkan dua operasi: send(pesan) untuk
mengirim pesan dan receive(pesan) untuk menerima pesan. Proses-proses yang akan
berkomunikasi satu sama lain harus melakukan dua tahapan, yaitu:
1. Pembentukan hubungan komunikasi

18
2. Pertukaran pesan melalui operasi send/receive.
Komunikasi antar proses dapat dilakukan secara langsung ataupun tidak langsung.
Untuk dapat melakukan komunikasi langsung setiap proses harus menuliskan si
penerima atau pengirim pesan secara eksplisit seperti: send(P, pesan) untuk mengirim
pesan ke proses P, receive(Q, pesan) untuk menerima pesan dari proses Q.
Karakteristik dari hubungan komunikasi adalah sebagai berikut:
1. Hubungan dibangun secara otomatis.
2. Satu hubungan hanya diasosiasikan dengan tepat satu pasang proses yang
saling berkomunikasi.
3. Dalam setiap pasang proses hanya ada tepat satu hubungan.
4. Hubungan dapat berupa satu arah (uni-directional) atau dua arah (bi-
directional).
Komunikasi tidak langsung dapat dilakukan melalui mailbox. Sifat-sifat dari
komunikasi tidak langsung adalah:
1. Hubungan terbentuk hanya jika proses-proses berbagi mailbox yang sama.
2. Sebuah hubungan dapat diasosiasikan dengan banyak proses.
3. Setiap pasang proses dapat memiliki hubungan lebih dari satu.
4. Hubungan yang terbangun dapat berupa satu arah atau dua arah.
Operasi-operasi yang terjadi pada komunikasi tidak langsung adalah penciptaan
mailbox, kirim dan terima pesan melalui mailbox, dan hancurkan mailbox. Beberapa
alternative penyelesaian untuk masalah ini adalah
1. Setiap hubungan diasosiasikan hanya dengan paling banyak dua proses.
2. Hanya satu proses yang dapat mengeksekusi perintah receive pada satu waktu
yang sama.
3. Sistem operasi dapat menentukan secara acak siapa penerima pesan, kemudian
proses pengirim diberitahu siapa proses penerima pesannya.

G. Sinkronisasi Sumber Daya


Sinkronisasi merupakan suatu proses secara bersama sama dan saling berbagi data
bersama dapat mengakibatkan race condition atau inkosistensi data. Sinkronisasi
dalam pengiriman pesan dapat bersifat:

19
1. Blocking (synchronous)
Pengirim pesan akan diblok sampai pesannya diterima (blocking send) dan
penerima pesan akan dihentikan sampai pesannya tersedia (blocking receive).

2. Non-blocking (asynchronous).
Non-blocking tidak akan menghentikan pengirim pesan setelah pesannya
dikirim (non-blocking send) dan tidak akan menghentikan penerima pesan
baik ada ataupun tidak ada pesan (non-blocking receive).

H. Thread
Thread adalah sebuah unit dasar dari penggunaan (utilization) CPU. Thread terdiri
dari identitas thread, PC, register, dan stack. Thread berbagi kode, data, dan sumber
daya sistem operasi lainnya, seperti berkas dan sinyal, dengan thread lain yang berada
dalam proses yang sama dalam sebuah sistem operasi.Manfaat thread antara lain :
1. Punya kemampuan (lebih responsif)
2. Berbagi sumber daya
3. Lebih Ekonomis
4. Skalabilitas

I. Multicore Programming
Manajemen banyak proses di komputer multicore (banyak pemproses di
dalamnya). Sistem seperti ini menempatkan tekanan pada programmer, tantangan

20
meliputi : pembagian aktivitas, keseimbangan, pemisahan data, ketergantungan data,
pengujian dan penelusuran.

Eksekusi Sitem Inti Tunggal secara Bersamaan

Eksekusi Paralel Sistem Inti Banyak secara Bersamaan

J. User Thread dan Kernel Thread


Threads berjalan dalam dua tingkat, yaitu tingkat pemakai (user level) dan tingkat
kernel (kernel level). Pada tingkat pemakai, pengelolaan thread dilakukan oleh library
thread tingkat pemakai. Terdapat tiga library utama pada thread, yaitu POSIX
Pthreads, Win32 threads dan Java threads. Sistem operasi yang mengadopsi
mekanisme thread tingkat kernel adalah Windows XP/2000, Solaris, Linux, Tru64
UNIX, dan Mac OS X.
Pemetaan thread pada tingkat pemakai ke tingkat kernel dapat terjadi dalam tiga
model berikut :
1. One-to-one
Pemetaan model ini sangat mendukung paralelisme, karena setiap thread
pemakai akan terikat dengan satu thread kernel, Adapun kekurangan dari
model ini adalah tingkat kebutuhan sumber daya yang cukup tinggi. Sistem
operasi yang mengadopsi mekanisme ini adalah Windows NT/XP/2000,
Linux, dan Solaris 9 ke atas.

21
2. Many-to-one
Many-to-one memetakan banyak threads pemakai ke sebuah thread kernel.
Sistem operasi yang mengadopsi mekanisme ini adalah Solaris Green Threads
dan GNU Portable Threads.

3. Many-to-many
Many-to-many dapat memetakan banyak thread pemakai ke banyak thread
kernel. Sistem operasi yang mengadopsi mekanisme ini adalah Windows
NT/2000 dengan ThreadFiber paketnya dan Solaris sebelum versi 9.

K. Model dua tingkat (two-level model)


Model ini mirip dengan model many to many, tetapi model ini juga mengijinkan
sebuah thread pemakai untuk terikat dengan satu thread kernel. Model ini terdapat
pada IRIX, HP-UX, Tru64 UNIX, Solaris 8 dan yang terdahulu.

22
B. KELEBIHAN DAN KEKURANGAN BUKU
a) Kelebihan
I. Buku Pertama
1. Pada buku ini, penyajian materi Proses terbilang cukup lengkap, dengan
adanya definisi proses, lalu siklusnya yang disajikan dengan gambar
beserta pengertian PCB (Process Control Block)
2. Penggunaan Bahasa yang tidak baku, serta penyajian gambar yang
memudahkan pembaca mudah memahami konsep

II. Buku Kedua


1. Materi proses pada buku ini lebih unggul dibanding buku pertama,
terbukti dengan adanya operasi-operasi pada proses dan pendalaman
thread pada Java.
2. Memberikan kesimpilan diakhir materi yang disajikan sehingga pembaca
dapat me-review ulang materi dengan mudah
3. Sampul buku yang menarik mampu memikat perhatian pembaca pada
buku ini

III. Buku Ketiga


1. Materi proses lebih disempurnakan lagi dibuku ini, terbukti dengan adanya
jenis, model, dan status proses hingga penciptaan sebuah proses yang
digambarkan oleh kode syntax
2. Materi Thread pada buku ini juga dibahas tuntas, mulai multithreading
yang lebih lengkap, user thread dan kernel thread hingga two-level model

23
3. Tiap contoh dan jenis proses dan thread disajikan gambar yang banyak
sehingga mampu membuat pemcaca mudah memahami materi dan tidak
monoton.

b) Kekurangan
I. Buku Pertama
1. Buku ini disajikan terlalu umum, tidak cocok untuk bagi programmer
advance, terbukti dari penyajian materi proses dan thread yang sangat
general dan tidak terlalu dalam
2. Tidak terdapat contoh syntax program pada buku ini
3. Cover buku yang kurang menarik serta penyajian gambar di tiap materi
yang hanya sedikit, mengurangi minat pembaca dengan alasa monoton

II. Buku Kedua


1. Penggunaan bahasa yang tidak baku, terdapat beberapa baris tulisan
seakan hasil terjemahan dari buku bahasa asing sehingga terlihat kaku
2. Pada materi thread, pengarang hanya memfokuskan pada threading Java,
sehigga pengetahuan memgenai threading hanya sebatas pada Java saja

III. Buku Ketiga


1. Materi proses dan thread yang disajikan langsung menuju inti, tanpa
banyak penjelasan generalisasi mengenai proses dan thread, sehingga sulit
dimegerti oleh para pembaca awam
2. Beberapa poin pada isu threading disajikan tanpa ada penjelasan lanjut,
yang mengakibatkan ilmu buntu oleh pembaca

24
BAB III
PENUTUP
A. KESIMPULAN
Sebuah proses adalah sebuah peristiwa adanya sebuah proses yang dapat dieksekusi.
Sebagai sebuah eksekusi proses, maka hal tersebut membutuhkan perubahan keadaan.
Keadaan dari sebuah proses dapat didefinisikan oleh aktivitas proses tertentu tersebut. Setiap
proses mungkin menjadi satu dari beberapa state berikut, antara lain: new, ready, running,
waiting, atau terminated. Setiap proses direpresentasikan ada sistem operasi berdasarkan
proses-control-block (PCB)-nya.
Thread adalah sebuah alur kontrol dari sebuah proses. Suatu proses yang multithreaded
mengandung beberapa perbedaan alur kontrol dengan ruang alamat yang sama. Keuntungan
dari multithreaded meliputi peningkatan respon dari user, pembagian sumber daya proses,
ekonomis, dan kemampuan untuk mengambil keuntungan dari arsitektur multiprosesor. User
level thread adalah thread yang tampak oleh programmer dan tidak diketahui oleh kernel.
User level thread secara tipikal dikelola oleh sebuah library thread di ruang user. Kernel level
thread didukung dan dikelola oleh kernel sistem operasi.

B. REKOMENDASI
Setelah tim penyusun menganalisis dan membaca ketiga buku, penulis dapat
merekomendasikan buku pertama sangat cocok dibaca oleh para pemula yang baru mengenal
proses dan thread , karena pada buku tersebut materi yang disajikan cukup general mulai dari
pengertian proses dan thread , lalu pembagiannya proses dan thread seperti sikulu proses, lalu
model-model threading, dan lain-lain.

25
Sedangkan pada buku ketiga lebih cocok dibaca oleh para programmer yang cukup
berpengalaman karena penyajian materi juga cukup mendalam tidak banyak basa basi
penjelasan umum dan mudah dipahami karena tersedia juga conton sintax programnya secara
langsung agar dapat dipahami oleh pembaca.

DAFTAR PUSTAKA

Mair, Zaid Romegar (2018). Teori Dan Praktek Sistem Operasi. CV BUDI UTAMA : Jakarta.
978-602-475-682-6

Hartono, (2018). SISTEM OPERASI. SEFA BUMI PERSADA : Medan. 978-602-6960-79-5

Mufadhol, (2015). Buku Ajar Sistem Operasi Komputer. Alfamedia : Yogyakarta.


978-979-12974-24-02

26

Anda mungkin juga menyukai