Anda di halaman 1dari 33

CRITICAL BOOK REPORT

“Process and Thread ”

Disusun untuk Memenuhi Tugas Mata Kuliah Sistem Operasi


Dosen pengampu :
Zulfahmi Indra, S.Si., M.Cs.

Disusun oleh :

KELOMPOK 4
WAHYU HIDAYAT (4192550007)

MHD. HUSAIRI (4193550016)

ESRA KRISTIANI SIHITE (4193550026)

NURAZIMAH (4195050001)

ILMU KOMPUTER 19 – C

PROGRAM STUDI S-1 ILMU KOMPUTER


FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM
UNIVERSITAS NEGERI MEDAN
2020 - 2021

1
KATA PENGANTAR

Puji dan syukur saya panjatkan atas kehadirat Tuhan Yang Maha Esa, yang telah
memberikan rahmat dan hidayah yang dilimpahkan-Nya kepada saya sehingga dapat
menyelesaikan tugas ini.
Adapun yang menjadi judul dari tugas saya adalah Critical Book Report. Tugas ini
disusun dengan harapan dapat menambah pengetahuan dan wawasan kita semua. Saya
mengucapkan terima kasih kepada pihak-pihak yang bersangkutan yang telah memberikan
bimbingan kepada saya selama proses pembelajaran mata kuliah ini.
Tak lepas dari kekurangan, saya menyadari bahwa tugas ini masih banyak kekurangan
dan jauh dari kata sempurna. Saya selaku penulis merima berbagai kritik yang sifatnya akan
membangun demi karya yang lebih baik lagi agar tugas ini menjadi lebih bermanfaat.
Semoga dengan adanya pembuatan tugas ini dapat memberikan manfaat berupa ilmu
pengetahuan yang baik bagi saya maupun bagi para pembaca. Kurang lebih saya mohon maaf
jika ada kesalahan dalam penulisan dan bahasa yang dipakai kurang dimengerti. Selebihnya saya
ucapkan terima kasih. Semoga dapat bermanfaat dan menambah pengetahuan kita semua.

Medan, Oktober 2020

Kelompok 4

2
DAFTAR ISI

KATA PENGANTAR ........................................................................................................ 2

DAFTAR ISI ...................................................................................................................... 3

BAB I PENDAHULUAN ................................................................................................... 4

1.1 Latar Belakang ............................................................................................................... 4

1.2 Tujuan ........................................................................................................................... 4

1.3 Manfaat ......................................................................................................................... 4

BAB II PEMBAHASAN..................................................................................................... 5

2.1 Identitas Buku ............................................................................................................... 5

2.2 Ringkasan Buku ............................................................................................................ 6

2.2.1 Ringkasan Buku I ................................................................................................ 6

2.2.2 Ringkasan Buku II ............................................................................................. 14

2.2.3 Ringkasan Buku III ........................................................................................... 21

2.3 Analisa Perbandingan Buku......................................................................................... 28

BAB III PENUTUP .......................................................................................................... 32

3.1 Kesimpulan ................................................................................................................. 32

3.2 Saran ........................................................................................................................... 32

DAFTAR PUSTAKA ....................................................................................................... 33

3
BAB I
PENDAHULUAN

1.1. Latar Belakang


Critical book adalah hasil kritik atau bandingan tentang suatu topik materi yang
umumnya ada pada perkuliahan, terhadap buku yang berbeda. Critical book tidak hanya
bertujuan untuk mengetahui isi buku, tetapi lebih menitikberatkan pada evaluasi
(penjelasan, interpretasi, dan analisis) mengenai keunggulan dan kelemahan buku, apa
yang menarik dari buku tersebut dan bagaimana isi buku tersebut dapat mempengaruhi
cara berpikir dan pemahaman pembaca.
Setiap buku yang ditulis oleh penulis tertentu pasti memiliki kelebihan dan
kekurangan masing-masing. Oleh karena itu, kelayakan suatu buku dapat diketahui
dengan melakukan resensi terhadap buku itu dengan perbandingan terhadap buku
lainnya. Suatu buku dengan kelebihan yang lebih dominan dibandingkan dengan buku
lainnya menandakan buku tersebut sudah layak untuk dipakai dan dijadikan sumber
referensi oleh khalayak ramai.

1.2 Tujuan
1. Mengetahui penjelasan Process and Thread pada masing-masing buku.
2. Mengamati perbedaan penjelasan Process and Thread pada masing-masing buku.
3. Untuk memenuhi tugas mata kuliah Sistem Operasi.
4. Untuk mengulas isi dari buku yang dikritik.
5. Membandingkan isi buku.

1.3 Manfaat
1. Agar pembaca tanggap terhadap hal-hal penting yang ada didalam buku ini.
2. Untuk memahami tentang materi Process and Thread.
3. Melatih kemampuan penulis dalam mengkritisi suatu buku.
4. Untuk mengetahui buku mana yang lebih mudah dipahami

4
BAB II
PEMBAHASAN

IDENTITAS BUKU
Buku I
Judul buku : Pengantar Sistem Operasi
Penerbit : MDGR FASILKOM UI
Penulis : Hanny Faristin,dkk. (Masyarakat Digital Gotong Royong)
Tahun Terbit : 2008
Tebal Halaman : 213

Buku II
Judul Buku : Sistem Operasi
Pengarang : Dhani Yuliarso,dkk. (Gabungan Kelompok Kerja 21-28 IKI
20230)
Penerbit : IKI
Tahun Terbit : 2003
Tebal Halaman : 308

Buku III
Judul Buku : Buku Ajar Sistem Operasi
Pengarang : Ronal Watrianthos dan Iwan Purnama
Penerbit : Uwais Inspirasi Indonesia
Tahun Terbit : 2018
Tebal Halaman : 85

5
RINGKASAN ISI BUKU

3.1 Ringkasan Isi Buku


Buku I
Konsep Proses
10.1. Pendahuluan
Proses didefinisikan sebagai program yang sedang dieksekusi. Menurut Silberschatz
proses tidak hanya sekedar suatu kode program ( text section), melainkan meliputi beberapa
aktivitas yang bersangkutan seperti program counter dan stack. Sebuah proses juga melibatkan
stack yang berisi data sementara (parameter fungsi/ metode, return address, dan variabel lokal)
dan data section yang menyimpan variabel-variabel global. Tanenbaum juga berpendapat bahwa
proses adalah sebuah program yang dieksekusi yang mencakup program counter, register, dan
variabel di dalamnya.
Keterkaitan hubungan antara proses dengan sistem operasi terlihat dari cara sistem
operasi menjalankan/ mengeksekusi proses. Sistem operasi mengeksekusi proses dengan dua
cara yaitu batch system yang mengeksekusi jobs dan time-shared system yang mengatur
pengeksekusian program pengguna ( user) atau tasks. Bahkan pada sistem pengguna tunggal (
single user) seperti Microsoft Windows dan Mac OS, seorang pengguna mampu menjalankan
beberapa program pada saat yang sama, seperti Spread Sheet, Web Browser, dan Web Email.
Bahkan jika pengguna hanya menggunakan satu program saja pada satu waktu, sistem operasi
perlu mendukung program internalnya sendiri, seperti manajemen memori. Dengan kata lain,
semua aktivitas tersebut adalah identik sehingga kita menyebutnya ''proses''.
Program itu sendiri bukanlah sebuah proses. Program merupakan sebuah entitas pasif;
serupa isi dari sebuah berkas didalam disket. Sedangkan sebuah proses adalah suatu entitas aktif,
dengan sebuah program counter yang menyimpan alamat instruksi yang selanjutnya akan
dieksekusi dan seperangkat sumber daya ( resource) yang dibutuhkan agar sebuah proses dapat
dieksekusi.
10.2. Diagram Status Proses Gambar 10.1. Status Proses

6
Sebuah proses dapat memiliki tiga status utama yaitu:
1. Running. Status yang dimiliki pada saat instruksi-instruksi dari sebuah proses dieksekusi
2. Waiting. Status yang dimiliki pada saat proses menunggu suatu sebuah event seperti proses
M/K.
3. Ready. Status yang dimiliki pada saat proses siap untuk dieksekusi oleh prosesor Terdapat dua
status tambahan, yaitu saat pembentukan dan terminasi:
1. New. Status yang dimiliki pada saat proses baru saja dibuat
2. 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. Ada tiga kemungkinan bila sebuah
proses memiliki status Running: Process Control Block 80
1. Jika program telah selesai dieksekusi maka status dari proses tersebut akan berubah menjadi
Terminated.
2. Jika waktu yang disediakan oleh OS untuk proses tersebut sudah habis maka akan terjadi
interrupt dan proses tersebut kini berstatus Ready.
3. Jika suatu event terjadi pada saat proses dieksekusi (seperti ada permintaan M/K) maka proses
tersebut akan menunggu event tersebut selesai dan proses berstatus Waiting.

10.3. Process Control Block


Gambar 10.2. Process Control Block

7
Setiap proses digambarkan dalam sistem operasi oleh sebuah process control block(PCB) - juga
disebut sebuah control block. Sebuah PCB ditunjukkan dalam Gambar 10.2, Process Control
Block. PCB berisikan banyak bagian dari informasi yang berhubungan dengan sebuah proses
yang spesifik, termasuk hal-hal di bawah ini:
1. Status Proses. Status new, ready, running, waiting, halted, dan juga banyak lagi.
2. Program Counter . Suatu stack yang berisi alamat dari instruksi selanjutnya untuk dieksekusi
untuk proses ini.
3. 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 (lihat Gambar 10.3, Status Proses).
4. 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).
5. Informasi pencatatan. Informasi ini termasuk jumlah dari CPU dan waktu riil yang digunakan,
batas waktu, jumlah akun, jumlah job atau proses, dan banyak lagi.
6. Informasi status M/K. Informasi termasuk daftar dari perangkat M/K yang di gunakan pada
proses ini, suatu daftar berkas-berkas yang sedang diakses dan banyak lagi. PCB hanya berfungsi
sebagai tempat penyimpanan informasi yang dapat bervariasi dari proses yang satu dengan yang
lain.

10.4. Pembentukan Proses Fungsi fork()


Saat komputer berjalan, terdapat banyak proses yang berjalan secara bersamaan. Sebuah
proses dibuat melalui system call create-process yang membentuk proses turunan ( child process)
yang dilakukan oleh proses induk ( parent process). Proses turunan tersebut juga mampu
membuat proses baru sehingga semua proses ini pada akhirnya membentuk pohon proses. Ketika
sebuah proses dibuat maka proses tersebut dapat memperoleh sumber-daya seperti waktu CPU,
memori, berkas, atau perangkat M/K. Sumber daya ini dapat diperoleh langsung dari sistem
operasi, dari proses induk yang membagibagikan sumber daya kepada setiap proses turunannnya,
atau proses turunan dan proses induk berbagi sumber-daya yang diberikan sistem operasi. Di

8
dalam UNIX daftar dari proses yang sedang aktif berjalan bisa didapatkan dengan menggunakan
perintah ps, contoh ps -el. Ada dua kemungkinan bagaimana jalannya ( running) proses induk
dan turunan. Proses-proses tersebut berjalan secara konkuren atau proses induk menunggu
sampai beberapa/seluruh proses turunannya selesai berjalan. Juga terdapat dua kemungkinan
dalam pemberian ruang alamat ( address space) proses yang baru.
Proses turunan dapat merupakan duplikasi. Bila UNIX menggunakan kemungkinan
pertama (proses baru merupakan duplikasi induknya) maka sistem operasi DEC VMS
menggunakan kemungkinan kedua dalam pembuatan proses baru yaitu setiap proses baru
memiliki program yang di- load ke ruang alamatnya dan melaksanakan program tersebut.
Sedangkan sistem operasi Microsoft Windows NT mendukung dua kemungkinan tersebut.
Ruang alamat proses induk dapat diduplikasi atau proses induk meminta sistem operasi untuk
meload program yang akan dijalankan proses baru ke ruang alamatnya.

10.5. Fungsi fork()


Sistem operasi UNIX mempunyai system call fork yang berfungsi untuk membuat proses
baru. Proses yang memanggil system call fork ini akan dibagi jadi dua, proses induk dan proses
turunan yang identik. Analoginya seperti pembelahan sel, dimana satu sel membelah jadi dua sel
yang identik. Proses induk dan turunan independen satu sama lain dan berjalan bersamaan.
Return code dari system call ini adalah suatu integer. Untuk proses anak return code-nya adalah
0 sementara untuk proses induk return code-nya adalah nomor identifikasi proses (PID) dari
turunannya. Ada juga system call exec yang berguna untuk membuat proses turunan yang
terbentuk memiliki instruksi yang berbeda dengan proses induknya. Dengan kata lain, proses
induk dan proses turunan tidak lagi identik tapi masing-masing punya instruksi berbeda.

9
10.6. Terminasi Proses
Suatu proses diterminasi ketika proses tersebut telah selesai mengeksekusi perintah
terakhir atau diterminasi dengan sengaja oleh proses lain, biasanya proses induk yang melakukan
hal ini. Pada saat terminasi. Semua sumber-daya yang digunakan oleh proses akan dialokasikan
kembali oleh sistem operasi agar dapat dimanfaatkan oleh proses lain. Suatu proses yang
diterminasi karena selesai melakukan tugasnya, sistem operasi akan memanggil system call exit()
sedangkan proses yang diterminasi dengan sengaja oleh proses lain melalui system call abort.
Biasanya proses induk melakukan terminasi sengaja pada turunannya.

Konsep Thread
11.1. Pendahuluan
Pada bab sebelumnya kita telah mempelajari tentang proses, namun seiring berjalannya
waktu dan tuntutan teknologi ternyata ditemukan kelemahan yang sebenarnya bisa diminimalisir
pada proses. Untuk itulah diciptakan thread yang merupakan cara dari komputer untuk
menjalankan dua atau lebih task dalam waktu bersamaan, sedangkan multithreading adalah cara
komputer untuk membagibagi pekerjaan yang dikerjakan sebagian-sebagian dengan cepat
sehingga menimbulkan efek seperti menjalakan beberapa task secara bersamaan walaupun
otaknya hanya satu. Di sini kita akan belajar mengapa harus ada thread, perbedaan thread dengan
proses, keuntungan pengimplementasian thread, model-model multithreading,
pengimplementasian pustaka thread, pembatalan thread, thread pools, penjadwalan thread dan
thread di Linux.

11.2. Keuntungan MultiThreading

10
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:
a. 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.
b. 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.
c. 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 dibandingkan pembuatan thread sedangkan proses context switch 5 kali
lebih lama dibandingkan context switching thread.
d. 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

11
ini berlangsung sangat cepat sehingga menciptakan ilusi paralel, tetapi pada kenyataanya
hanya satu thread yang dijalankan CPU pada satu-satuan waktu.

11.3. Model MultiThreading


Beberapa terminologi yang akan dibahas:
a. 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.
b. 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.
Pustaka Thread 86 Gambar 11.1. Model-Model MultiThreading Model-Model MultiThreading:

a. Model Many-to-One .

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

12
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.
c. 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.

13
Buku II
2.1. Proses
Satu selingan pada diskusi kita mengenai sistem operasi yaitu bahwa ada sebuah
pertanyaan mengenai apa untuk menyebut semua aktivitas CPU. Sistem batch mengeksekusi
jobs, sebagaimana suatu sistem time-shared telah menggunakan program pengguna, atau tugas-
tugas/ pekerjaan-pekerjaan. Bahkan pada sistem tunggal, seperti Microsoft Windows dan
Macintosh OS, seorang pengguna mampu untuk menjalankan beberapa program pada saat yang
sama: sebuah Word Processor, Web Browser, dan paket e-mail. Bahkan jika pengguna dapat
melakukan hanya satu program pada satu waktu, sistem operasi perlu untuk mendukung aktivitas
program internalnya sendiri, seperti managemen memori. Dalam banyak hal, seluruh aktivitas ini
adalah serupa, maka kita menyebut seluruh program itu proses-proses (processes).
Istilah job dan proses digunakan hampir dapat dipertukarkan pada tulisan ini. Walau kami
pribadi lebih mneyukai istilah proses, banyak teori dan terminologi sistem-operasi
dikembangkan selama suatu waktu ketika aktivitas utama sistem operasi adalah job processing.
Akan menyesatkan untuk menghindari penggunaan istilah umum yang telah diterima bahwa
memasukkn kata job (seperti penjadualan job) hanya karena proses memiliki job pengganti/
pendahulu.

2.1.1. Konsep Dasar dan 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 berisikan variabel global.
Kami tekankan 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.

14
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 bervariasi. Juga adalah umum untuk memiliki
proses yang menghasilkan banyak proses begitu ia bekerja. Kami mendiskusikan masalah
tersebut pada Bagian 2.4.

2.1.2. Keadaan 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.
• Running: Instruksi sedang dikerjakan.
• Waiting: Proses sedang menunggu sejumlah kejadian untuk terjadi (seperti sebuah
penyelesaian I/O atau penerimaan sebuah tanda/ signal).
• Ready: Proses sedang menunggu untuk ditugaskan pada sebuah prosesor.
• Terminated: Proses telah selsesai melaksanakan tugasnya/ mengeksekusi.
Nama-nama tersebut adalah arbitrer/ berdasar opini, istilah tersebut bervariasi
disepanjang sistem operasi. Keadaan yang mereka gambarkan ditemukan pada seluruh sistem.
Namun, sistem operasi tertentu juga lebih baik menggambarkan keadaan/ status proses. Adalah
penting untuk menyadari bahwa hanya satu proses dapat berjalan pada prosesor mana pun pada
waktu kapan pun. Namun, banyak proses yang dapat ready atau waiting. Keadaan diagram yang
berkaitan dangan keadaan tersebut dijelaskan pada Gambar 2-1.

2.1.3.Process Control Block

15
Tiap proses digambarkan dalam sistem operasi oleh sebuah process control block (PCB) -
juga disebut sebuah control block. Sebuah PCB ditunjukkan dalam Gambar 2-2. PCB berisikan
banyak bagian dari informasi yang berhubungan dengan sebuah proses yang spesifik, termasuk
ini:
• Keadaan proses: Keadaan mungkin, new, ready, running, waiting, halted, dan juga
banyak lagi.
• Program counter: Counter mengindikasikan address dari perintah selanjutnya untuk
dijalankan untuk 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. Besertaan dengan program counter,
keadaan/ status informasi harus disimpan ketika gangguan terjadi, untuk memungkinkan proses
tersebut berjalan/ bekerja dengan benar setelahnya (lihat Gambar 2-3).
• 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 yang digunakan oleh sistem operasi (lihat Bab 4).
• Informasi pencatatan: Informasi ini termasuk jumlah dari CPU dan waktu riil yang
digunakan, batas waktu, jumlah akun, jumlah job atau proses, dan banyak lagi.
• Informasi status I/O: Informasi termasuk daftar dari perangkat I/O yang di gunakan
pada proses ini, suatu daftar open berkas dan banyak lagi.
• PCB hanya berfungsi sebagai tempat menyimpan/ gudang untuk informasi apa pun
yang dapat bervariasi dari prose ke proses.

Gambar 2-2. Process Control Block.

16
Gambar 2-3. CPU Register.

2.5. Thread
Thread, atau kadang-kadang disebut proses ringan (lightweight), adalah unit dasar dari
utilisasi CPU. Di dalamnya terdapat ID thread, program counter, register, dan stack. Dan saling
berbagi dengan thread lain dalam proses yang sama.
Gambar 2-16. Thread.

17
2.5.1. Konsep Dasar
Secara informal, proses adalah program yang sedang dieksekusi. Ada dua jenis proses,
proses berat (heavyweight) atau biasa dikenal dengan proses tradisional, dan proses ringan atau
kadang disebut thread. Thread saling berbagi bagian program, bagian data dan sumber daya
sistem operasi dengan thread lain yang mengacu pada proses yang sama. Thread terdiri atas ID
thread, program counter, himpunan register, dan stack. Dengan banyak kontrol thread proses
dapat melakukan lebih dari satu pekerjaan pada waktu yang sama.

2.5.2. Keuntungan
1. Tanggap: Multithreading mengizinkan program untuk berjalan terus walau pun pada bagian
program tersebut di block atau sedang dalam keadaan menjalankan operasi yang lama/ panjang.
Sebagai contoh, multithread web browser dapat mengizinkan pengguna berinteraksi dengan
suatu thread ketika suatu gambar sedang diload oleh thread yang lain.
2. Pembagian sumber daya: Secara default, thread membagi memori dan sumber daya dari
proses. Keuntungan dari pembagian kode adalah aplikasi mempunyai perbedaan aktifitas thread
dengan alokasi memori yang sama.
3. Ekonomis: Mengalokasikan memori dan sumber daya untuk membuat proses adalah sangat
mahal. Alternatifnya, karena thread membagi sumber daya dari proses, ini lebih ekonomis untuk
membuat threads.
4. Pemberdayaan arsitektur multiprosesor: Keuntungann dari multithreading dapat ditingkatkan
dengan arsitektur multiprosesor, dimana setiap thread dapat jalan secara parallel pada prosesor
yang berbeda. Pada arsitektur prosesor tunggal, CPU biasanya berpindah-pindah antara setiap
thread dengan cepat, sehingga terdapat ilusi paralelisme, tetapi pada kenyataannya hanya satu
thread yang berjalan di setiap waktu.

18
2.5.3. User Threads
Gambar 2-17. User dan Kernel Thread.

User thread didukung oleh kernel dan diimplementasikan oleh thread library ditingkat
pengguna. Library mendukung untuk pembentukan thread, penjadualan, dan managemen yang
tidak didukung oleh kernel.

2.5.4. Kernel Threads


Kernel thread didukung secara langsung oleh sistem operasi: pembentukan thread,
penjadualan, dan managemen dilakukan oleh kernel dalam ruang kernel. Karena managemen
thread telah dilakukan oleh sistem operasi, kernel thread biasanya lebih lambat untuk membuat
dan mengelola daripada pengguna thread. Bagaimana pun, selama kernel mengelola thread, jika
suatu thread di block tehadap sistem pemanggilan, kernel dapat menjadualkan thread yang lain
dalam aplikasi untuk dieksekusi. Juga, di dalam lingkungan multiprosesor, kernel dapat
menjadualkan thread dalam prosesor yang berbeda. Windows NT, Solaris, dan Digital UNIX
adalah sistem operasi yang mendukung kernel thread. 40 Bab 2. Proses dan Thread

2.6. Model Multithreading


Dalam sub bab sebelumnya telah dibahas pengertian dari thread, keuntungannya,
tingkatan atau levelnya seperti pengguna dan kernel. Maka dalam sub-bab ini pembahasan akan
dilanjutkan dengan jenis-jenis thread tersebut dan contohnya baik pada Solaris mau pun Java.
Sistem-sistem yang ada sekarang sudah banyak yang bisa mendukung untuk kedua pengguna dan
kernel thread, sehingga model-model multithreading-nya pun menjadi beragam. Implementasi

19
multithreading yang umum akan kita bahas ada tiga, yaitu model many-to-one, one-to-one, dan
many-to-many.
Gambar 2-18. Model Multithreading.

20
Buku III
III. Proses

Satu selingan pada diskusi kita mengenai sistem operasi yaitu bahwa ada sebuah
pertanyaan mengenai apa untuk menyebut semua aktivitas CPU. Sistem batch mengeksekusi
jobs, sebagaimana suatu sistem time-shared telah menggunakan program pengguna, atau tugas-
tugas/ pekerjaan-pekerjaan. Pada sistem tunggal, seperti Microsoft Windows dan Macintosh OS,
seorang pengguna mampu untuk menjalankan beberapa program pada saat yang sama: sebuah
Word Processor, Web Browser, dan paket e-mail. Bahkan jika pengguna dapat melakukan hanya
satu program pada satu waktu, sistem operasi perlu untuk mendukung aktivitas program
internalnya sendiri, seperti managemen memori. Dalam banyak hal, seluruh aktivitas ini adalah
serupa, maka kita menyebut seluruh program itu proses-proses (processes).

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 berisikan variabel global. 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

21
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
bervariasi. Dalam SO, juga umum untuk memiliki proses yang menghasilkan banyak proses
begitu ia bekerja.

B. Keadaan 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:
1. New: Proses sedang dikerjakan/ dibuat.
2. Running: Instruksi sedang dikerjakan.
3. Waiting: Proses sedang menunggu sejumlah kejadian untuk terjadi (seperti sebuah
penyelesaian I/O atau penerimaan sebuah tanda/ signal).
4. Ready: Proses sedang menunggu untuk ditugaskan pada sebuah prosesor.
5.Terminated: Proses telah selsesai melaksanakan tugasnya/ mengeksekusi.
Nama-nama tersebut adalah arbitrer/berdasar opini, istilah tersebut bervariasi disepanjang
sistem operasi. Namun, sistem operasi tertentu juga lebih baik menggambarkan keadaan/status
proses. Penting untuk menyadari bahwa hanya satu proses dapat berjalan pada prosesor mana
pun pada waktu kapan pun. Namun, banyak proses yang dapat ready atau waiting. Keadaan
diagram yang berkaitan dangan keadaan tersebut dijelaskan pada Gambar 3.1. C. Proces Control
Block Tiap proses digambarkan dalam sistem operasi oleh sebuah Process Control Block (PCB),
juga disebut sebuah control block. Sebuah PCB ditunjukkan dalam Gambar 3.2.
PCB berisikan banyak bagian dari informasi yang berhubungan dengan sebuah proses
yang spesifik, seperti:
1. Keadaan proses seperti new, ready, running, waiting, halted, dan juga banyak lagi.
2. Program counter mengindikasikan address dari perintah selanjutnya untuk dijalankan untuk
proses ini.

22
3. CPU Register, dalam PCB 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 dengan
program counter, dalam PCB keadaan/status informasi harus disimpan ketika gangguan terjadi,
untuk memungkinkan proses tersebut berjalan/bekerja dengan benar setelahnya (lihat Gambar
3.2).
4. Informasi Manajemen Memori, dalam PCB informasi ini termasuk dalam suatu informasi
sebagai nilai dari dasar dan batas register, tabel page/halaman, atau tabel segmen tergantung
pada sistem memori yang digunakan oleh sistem operasi.
5. Informasi pencatatan, dalam PCB informasi ini termasuk jumlah dari CPU dan waktu riil yang
digunakan, batas waktu, jumlah akun, jumlah job atau proses, dan banyak lagi.
6. Informasi status I/O, dalam PCB informas inii termasuk daftar dari perangkat I/O yang di
gunakan pada proses ini, suatu daftar berkas-berkas yang sedang terbuka, dan banyak lagi.

IV. Thread

23
Thread merupakan unit dasar dari penggunaan CPU, yang terdiri dari Thread_ID,
program counter, register set, dan stack. Sebuah thread berbagi code section, data section, dan
sumber daya sistem operasi dengan Thread lain yang dimiliki oleh proses yang sama. Thread
juga sering disebut lightweight process.
Sebuah proses tradisional atau heavyweight process mempunyai thread tunggal yang
berfungsi sebagai pengendali. Perbedaan antara proses dengan thread tunggal dengan proses
dengan thread yang banyak (Multi thread) adalah proses dengan thread yang banyak dapat
mengerjakan lebih dari satu tugas pada satu satuan waktu.
Banyak sistem operasi modern telah memiliki konsep yang dikembangkan agar
memungkinkan sebuah proses untuk memiliki eksekusi multithreads, agar dapat secara terus
menerus mengetik dan menjalankan pemeriksaan ejaan didalam proses yang sama, maka sistem
operasi tersebut memungkinkan proses untuk menjalankan lebih dari satu tugas pada satu waktu.

A. Definisi
Thread Secara informal, proses adalah program yang sedang dieksekusi. Ada dua jenis
proses, proses berat (heavyweight) atau biasa dikenal dengan proses tradisional, dan proses
ringan atau kadang disebut thread.
Thread saling berbagi bagian program, bagian data, dan sumber daya sistem operasi
dengan thread lain yang mengacu pada proses yang sama. Thread terdiri atas ID thread, program
counter, himpunan register, dan stack sehingga dengan banyaknya kontrol thread, proses dapat
melakukan lebih dari satu pekerjaan pada waktu yang sama.

24
Sebuah thread dalam sistem operasi memberikan keuntungan sebagai berikut:
1. Tanggap, artinya ketika Multithreading mengizinkan program untuk berjalan terus walaupun
pada bagian program tersebut di block atau sedang dalam keadaan menjalankan operasi yang
lama/ panjang. Sebagai contoh, multithread web browser dapat mengizinkan pengguna
berinteraksi dengan suatu thread ketika suatu gambar sedang diload oleh thread yang lain.
2. Pembagian sumber daya, artinya thread mampu membagi memori dan sumber daya dari
proses. Keuntungan dari pembagian kode adalah aplikasi mempunyai perbedaan aktifitas thread
dengan alokasi memori yang sama.
3. Ekonomis, artinya ketika Sistem Operasi mengalokasikan memori dan sumber daya untuk
membuat proses adalah sangat mahal. Alternatifnya, thread mampu membagi sumber daya dari
proses sehingga lebih ekonomis untuk membuat proses.
4. Pemberdayaan arsitektur multiprosesor, maksudnya adalah dengan multithreading dapat
ditingkatkan dengan menggunakan arsitektur multiprosesor, di mana setiap thread dapat jalan
secara parallel pada prosesor yang berbeda. Pada arsitektur prosesor tunggal, CPU biasanya
berpindah-pindah antara setiap thread dengan cepat, sehingga terdapat ilusi paralelisme, tetapi
pada kenyataannya hanya satu thread yang berjalan di setiap waktu.

B. Model Multithreading

25
Implementasi Multithreading dalam sistem operasi terdiri dari:
1. Model Many to One

Model many to one ini memetakan beberapa tingkatan pengguna thread hanya kesatu
buah kernel thread. Managemen proses thread dilakukan oleh (di ruang) pengguna, sehingga
menjadi efisien, tetapi apabila sebuah thread melakukan sebuah pemblokingan terhadap
sistem pemanggilan, maka seluruh proses akan berhenti (blocked). Kelemahan dari model ini
adalah multihreads tidak dapat berjalan atau bekerja secara paralel di dalam multiprosesor
dikarenakan hanya satu thread saja yang bisa mengakses kernel dalam suatu waktu.

2. Model One to One


Model one to one memetakan setiap thread pengguna ke dalam satu kernel thread. Hal ini
membuat model one-to-one lebih sinkron daripada model many-to-one dengan mengizinkan
thread lain untuk berjalan ketika suatu thread membuat pemblokingan terhadap sistem
pemanggilan. Hal ini juga mengizinkan multiple thread untuk berjalan secara parallel dalam
multiprosesor. Kelemahan model ini adalah dalam pembuatan thread pengguna dibutuhkan
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 one-to-one diimplementasikan
oleh Windows NT dan OS/2.

3. Model Many to Many

Beberapa tingkatan thread pengguna dapat menggunakan jumlah kernel thread yang lebih
kecil atau sama dengan jumlah thread pengguna. Jumlah dari kernel thread dapat

26
dispesifikasikan untuk beberapa aplikasi dan beberapa mesin (suatu aplikasi dapat
dialokasikan lebih dari beberapa kernel thread dalam multiprosesor daripada dalam
uniprosesor) dimana model many-to-one mengizinkan pengembang untuk membuat thread
pengguna sebanyak mungkin, konkurensi tidak dapat tercapai karena hanya satu thread yang
dapat dijadualkan oleh kernel dalam satu waktu. Model one-to-one mempunyai konkurensi
yang lebih tinggi, tetapi pengembang harus hati-hati untuk tidak membuat terlalu banyak
thread tanpa aplikasi dan dalam kasus tertentu mungkin jumlah thread yang dapat dibuat
dibatasi.

27
ANALISA PERBANDINGAN BUKU

Analisis Buku I
 Keunggulan Buku
1. Buku I memuat lebih banyak gambar ilustrasi dalam rangka menjelaskan teori dibanding
buku pembanding.
2. Bahasa yang digunakan pada buku I dapat dipahami dengan mudah.
3. Unsur tata letak pada buku ini disusun dengan baik sehingga terlihat rapi dan tidak
membosankan.
4. Buku ini juga didukung dengan pewarnaan pada font atau gambar yang tertera di dalam
buku sehingga terlihat lebih menarik untuk dibaca.
5. Catatan-catatan kecil juga diselipkan di dalam buku ini sebagai tambahan informasi bagi
pembaca.
 Kelemahan Buku
1. Gambar yang dimuat di buku ini tercetak dengan keadaan greyscale (hitam-putih) atau
tidak berwarna.
2. Buku memuat terlalu banyak tulisan yang tidak begitu penting sehingga dapat membuat
pembaca cepat bosan.
3. Banyak inti dari materi pembahasan yang tidak disampaikan dalam buku ini.

Analisis Buku II
 Keunggulan Buku
1. Buku pembanding tebal dibandingkan buku utama.
2. Buku pembanding memiliki isi yang sesuai dengan judul buku yaitu Buku Praktis
3. Pembahasan teori disampaikan dengan dukungan dari gambar ilustrasi yang mumpuni.
4. Buku ini disusun dengan singkat, padat, dan jelas.
5. Bahasa yang digunakan cukup mudah untuk dimengerti oleh kalangan pelajar ataupun
umum.
6. Cover buku ini terlihat lebih sederhana.
 Kelemahan Buku
1. Pembahasan teori pada buku ini terlalu singkat

28
2. Buku ini memiliki unsur gambar yang tercetak dengan greyscale (hitan-putih) atau tidak
berwarna.

Analisis Buku III


 Keunggulan Buku
1. Buku pembanding lebih ringan dan lebih tipis dibandingkan buku utama.
2. Buku pembanding memiliki isi yang sesuai dengan judul buku yaitu Buku Praktis
3. Pembahasan teori disampaikan dengan dukungan dari gambar ilustrasi yang mumpuni.
4. Buku ini disusun dengan singkat, padat, dan jelas.
5. Bahasa yang digunakan cukup mudah untuk dimengerti oleh kalangan pelajar ataupun
umum.
6. Cover buku ini terlihat lebih sederhana.
 Kelemahan Buku
1. Pembahasan teori pada buku ini terlalu singkat
2. Tampilan Buku Kurang menarik.

29
PERBANDINGAN TIGA BUKU

Berdasarkan hasil perbandingan yang telah dibuat pada identitas buku utama dan identitas
buku pembanding bahwa kedua buku tersebut memiliki perbedaan cukup jauh. Berikut akan
diuraikan persamaan dan perbedaan dari kedua buku tersebut adalah sebagai berikut :

1) Persamaan
 Memiliki topik pembahasan yang sama yaitu mengenai Process and Thread
 Membahas tentang contoh contoh mengenai Process and Thread
 Dapat digunakan sebagai bahan pembelajaran bagi siswa SMA.
 Disusun dengan bahasa yang jelas dan mudah dipahami.

2) Perbedaan

NO PEMBANDING BUKU I BUKU II BUKU III


Buku pembanding
Buku utama memiliki
memiliki cover yang Cover Buku
1. Cover Buku cover yang lebih kaya
lebih modern dan sangat sederhana
dan nyata
sederhana
2. Tahun terbit Tahun 2008 Tahun 2003 Tahun 2018

3. Topik Process and


Process and Thread Process and Thread
Thread
Buku pembanding
buku utama
melengkapinya Menampilkan
melengkapinya
dengan sebuah gambar atau table
dengan sebuah
4. Gambar / tabel gambar dan tabel secara kompleks
gambar dan tabel agar
agar pembaca lebih dan disertai
pembaca lebih mudah
mudah dengan penjelasan
memahaminya.
memahaminya
bahasa pada buku bahasa pada buku bahasa pada buku
5. Bahasa utama dapat dipahami pembanding dapat utama dapat
dengan jelas. dipahami dengan dipahami dengan

30
jelas. jelas.
Lebih rapi dan enak
6. Tata Letak Rapi Rapi
dilihat atau dibaca
7. Contoh soal Ada Ada Ada

31
BAB IV
PENUTUP

A. Kesimpulan
Proses merupakan suatu upaya pemberian ajaran secara mendalam (tanpa kritik)
atau penggemblengan mengenai suatu paham atau doktrin tertentu dng melihat suatu
kebenaran dr arah tertentu saja . Thread adalah unit dasar dari penggunaan CPU, yang
terdiri dari Thread ID, program counter, register set, dan stack.
B. Saran
Berdasarkan hasil review yang saya buat, buku pertama, buku kedua, dan buku
ketiga memiliki persamaan dalam menjelaskan materi tentang Process and Thread. Tetapi
kedua buku tersebut juga memiiki perbedaan, kelebihan, serta kekurangan. Untuk
menambah pengetahuan dalam memahami penjelasan tentang materi Process and Thread,
ketiga buku sangat bermanfaat, serta cocok digunakan dalam mempelajari materi Process
and Thread tersebut.

32
DAFTAR PUSTAKA

Faristin, Hanny dkk. 2008. Pengantar Sistem Operasi. Jakarta : MDGR FASILKOM UI
Watrianthos., R., dkk, 2018, Buku Ajar Sistem Operasi, Ponorogo : Uwais Inspirasi
Indonesia
Yuliarso, Dhani dkk. 2003. Sistem Operasi. Jakarta : IKI

33

Anda mungkin juga menyukai