Anda di halaman 1dari 24

LABORATORIUM PEMBELAJARAN ILMU KOMPUTER

FAKULTAS ILMU KOMPUTER


UNIVERSITAS BRAWIJAYA

NAMA : Nabila Zaein Dwi Kensiwi


NIM : 215150601111019
MATERI/TUGAS/
KESIMPULAN : BAB III
TANGGAL : 15/03/2022
ASISTEN : Ricko Anggoro Putra Yustono

BAB III
PROSES

3.1 Teori Pendukung

Proses merupakan sebuah program yang sedang dieksekusi atau dijalankan.


Secara sederhana, sebuah proses baru dibuat dan dijalankan ketika perintah
diberikan oleh pengguna kepada komputer melalui antarmuka pengguna. Proses
ini kemudian membuat proses baru lainnya, atau juga menyebabkan sistem
operasi harus membuat proses atau thread baru yang saling terkait. Dan dengan
arsitektur komputer serta desain sistem operasi modern, sangat dimungkinkan
untuk menjalankan banyak proses, yang berasal dari aplikasi atau program yang
sama ataupun juga berbeda. Pembentukan proses baru pada sistem operasi linux
menggunakan dua system call utama, yaitu fork() dan exec().

Dengan menggunakan fork(), proses baru yang dihasilkan akan sama persis
dengan proses sebelumnya. Artinya apa yang telah dieksekusi sebelumnya akan
diduplikasi, termasuk berkas yang dibuka, status register, semua alokasi memori
dan juga kode program. Yang membedakan proses lama (parent) dan proses baru
(child) adalah identitas proses (PID) yang dimiliki. Jika yang dibutuhkan adalah
proses baru yang benar-benar berbeda dari proses sebelumnya, maka linux akan
menggunakan system call exec(). System Call exec() mengganti isi proses yang
sedang berjalan dengan informasi baru dari program yang dijalankan terakhir.
Perbedaan dari kedua system call ini dapat dilihat pada gambar 1.

Sistem operasi linux juga membawa berbagai macam perintah untuk


mengelola proses. Perintah-perintah ini pada umumnya dimasukkan atau
dijalankan melalui shell atau pada sistem operasi modern cenderung
menggunakan GUI yang menyediakan shell melalui sebuah aplikasi terminal dan
sejenisnya. Fungsi utama shell adalah untuk membantu pengguna untuk memulai,
mengatur dan menghentikan proses. Contoh perintah terkait dengan pengaturan
proses pada sistem operasi linux antara lain:

 ps(1) – melihat status dari satu atau lebih proses.


 kill dan killall – menghentikan proses.
 pstree(1) – menampilkan hirarki dari proses yang sedang berjalan.
 top – menampilkan penggunaan resources (processor, memori) dari
sebuah proses.
 nice – mengatur prioritas dari sebuah proses baru.
 renice(8) - mengubah prioritas dari sebuah proses yang sedang berjalan.
 skill – mengetahui status dari sebuah proses.
 snice - mengetahui status dari sebuah proses.
 acct – pencatatan aktivitas dan status proses dalam sebuah berkas
/var/log/pacct.
 lastcomm (1) – menampilkan informasi tentang perintah sebelumnya.
Hanya aktif jika acct berjalan.
 sa(8) – melihat ringkasan isi berkas /var/log/pacct terkait dengan proses.

Gambar 1 Pembentukan proses dengan fork()


dan exec()

3.2 Materi Praktikum

3.2.1 Aktifkan sistem operasi linux yang telah di-install sebelumnya. Login ke
sistem dan kemudian. Buka sebuah console shell atau aplikasi terminal
jika menggunakan mode GUI

3.2.2 Ketikan perintah pada terminal $ man ps


3.2.3 Apa yang dapat dijelaskan dari penulisan perintah $ man ps dari
langkah nomor 2?

Perintah man ps digunakan untuk menampilkan dokumentasi


dan user manual dari perintah/aplikasi ps

3.2.4 Ketikan perintah $ top kemudian perhatikan atau catat tampilan yang ada

3.2.5 Buka aplikasi terminal yang kedua, dan ketikan perintah $ ps kemudian
perhatikan kembali tampilan yang ada pada terminal pertama

Tampilan terminal kedua (ps)


Tampilan terminal pertama setelah mengetik ps di terminal
kedua

3.2.6 Ketikan perintah $ ps -ax dan lihat kembali tampilan pada terminal
pertama
3.2.7 Sebutkan dan jelaskan dengan singkat informasi apa saja yang dapat
dilihat dengan perintah $ ps!

Informasi yang didapat dengan menggunakan perintah $ ps yaitu dapat


melihat informasi :
1. PID, untuk melihat nomor proses,
2. TTY, untuk melihat nama terminal dimana proses tersebut aktif,
3. Stat berisi Sleeping dan Running,
4. CMD, untuk melihat instruksi yang digunakan.

3.2.8 Sebutkan dan jelaskan dengan singkat informasi apa saja yang dapat
dilihat dengan perintah $ ps -ax!

Informasi yang di dapat ketika menjalankan perintah $ ps –ax yaitu:


1. PID, melihat nomor proses,
2. TTY, melihat nama terminal yang dimana proses tersebut dalam
keadaan aktif,
3. STAT, Sleeping and Running,
4. TIME, waktu proses,
5. Command, melihat instruksi yang digunakan

3.2.9 Jelaskan perbedaan antara perintah $ ps dan $ ps -ax?

Kalau perintah $ p situ menampilkan informasi tentang pilihan proses


aktif yang dimana ditampilkan yaitu PID, TTY, TIME, dan CMD.
Sedangkan perintah $ ps –ax ini jjuga hamper sama dengan perintah
$ ps yang menampilkan PID, TTY, TIME, dan CMD namun ada
perbedaan atau penambahan pada perintah $ ps – ax ini yaitu
menampilakn juga STAT

3.2.10 Sebutkan minimal 6 argumen lain yang dapat ditambahkan pada


perintah $ ps dan jelaskan dengan singkat fungsi dari masing-masing
argumen!

1. $ ps –a, sebuah perintah yang berfungsi untuk menampilkan


semua proses yang mempunyai controlling terminal.

2. $ ps –A, berfungsi untuk menampilkan semua proses yang tidak


mempunyai controlling terminal.
3. $ ps –u, berfungsi untuk menampilkan sebuah proses beserta
nama usernya.

4. $ ps –ef, sebuah perintah yang digunakan untuk menampilkan


semua proses seperti perintah ps –A dengan tambahan opsi –f.
5. $ ps –eH, sebuah perintah yang berfungsi menampilkan hubungan
proses parent dan child.

6. $ ps ax, berfungsi untuk menampilkan semua proses baik yang


mempunyai contolling terminal ataupun tidak. Dan terdapat status
dari prosesnya seperti lagi berjalan atau sleep.
3.2.11 Buka aplikasi terminal yang ketiga dan jalankan perintah $ yes linux
kemudian perhatikan terminal pertama.

Terminal ketiga

3.2.12 Buka aplikasi terminal yang kedua, dan ketikan perintah $ ps –ax
3.2.13 Temukan identitas proses yang terkait dengan perintah $ yes pada
terminal ketiga dan tuliskan dengan lengkap serta berikan penjelasan!

Ketika sedang menjalankan perintah $ yes identitas yang ditampilkan


pada terminal ketiga yaitu:
1. Nomor Identitas Proses(PID), dengan nomor 2873,
2. TTY, dengan nama terminal dimana proses tersebut aktif yaitu
pts/0,
3. Status apakah proses sedang sleeping atau running atau disebut
STAT dengan status R+,
4. Intruksi yang digunakan adalah yes.

3.2.14 Bagaimana cara mencari penjelasan yang tepat terkait dengan


penggunaan perintah $ kill dan $ killall?

Dengan melakukan cara mengetikkan sebuah perintah $man sebelum


perintah $kill atau $killall untuk menampilkan dokumentasi atau user
manual perintah $kill atau $killall

$kill
$killall

3.2.15 Perintah manakah yang lebih tepat, apakah $ kill atau $ killall, yang
dapat digunakan untuk menghentikan proses yang terkait dengan
perintah $ yes di terminal ketiga pada langkah sebelumnya (langkah
13)? Jelaskan alasannya!
Perintah yang tepat digunakan untuk menghentikan proses yang terkait
dengan perintah yes pada terminal ketiga yaitu dengan menggunakan
syntax $kill dikarenaka hanya menghentikan satu proses, berbeda
dengan syntax $killall yang dapat menghentikan banyak proses yang
sama sekaligus.
3.2.16 Tunjukkan hasil (tampilan pada terminal kedua) yang dapat diambil
ketika menjalankan perintah yang dipilih pada langkah 15!

Pada terminal kedua

Pada terminal ketiga

Pada terminal ke empat


3.2.17 Apa yang dapat disimpulkan tentang perintah $ kill dan $ killall?

Perintah $kill dapat dipakai untuk mengakhiri atau terminated


secara manual atau dapat disebut dapat menghentikan proses
yang akan kita hentikan sedangkan $killall berfungsi untuk
menghentikan banyak proses sekaligus

3.2.18 Sebutkan dan jelaskan dengan singkat informasi apa saja yang dapat
dilihat dengan perintah $ top!

1. ROW -TOP(baris paling pertama)


Terdapat informasi waktu saat ini, mesin berjalan,sesi user
login, dan rata-rata beban system.
2. Task Terdapat informasi total process yang sedang
berjalan,proses yang sedang berjalan,proses yang sleeping
dan proses yang sedang berhenti.
3. CPU Terdapat informasi persentase pemakaian CPU untuk
proses penggunan,persentase proses CPU yang digunakan
system, Persentase proses CPU yang mendapatkan
prioritas update,persentase CPU yang tidak terpakai ,
persentase CPU yangmenunggu proses I/O,penggunaan
CPU untuk service hardware, penggunaan CPU untuk
service software, dan jumlah CPU yang menjalankan virtual
lainnya.
4. Memory dan Swap Pada baris 4 dan 5 akan ditampilkan
informasi mengenai penggunaan memory dan swap misal
jumlah memory yang digunakan,memori bebas,cache,dll.
5. Process List
PID = merupakan ID Proses.
USER = user disini maksudnya pengguna yang merupakan
pemilik proses.
PR = merupakan prioritas proses.
NI = merupakan Proses yang bagus untuk berjalan.
VIRT = Memory virtual yang digunakan oleh proses.
RES = Memory fisik yang digunakan oleh proses.
SHR = Proses yang disharing.
S = Menunjukan status proses:
S=sleep .
R=running.
Z=zombie.
%CPU = Persentase proses yang menggunakan CPU .
%MEM = Persentase proses yang menggunakan RAM .
TIME+ = Total waktu untuk seluruh aktivitas proses.
COMMAND = Nama proses.

3.2.19 Apa yang dapat disimpulkan tentang perintah $ top?

Perintah $top sama halnya seperti perintah $ps yaitu berfungsi


untuk menampilkan proses yang sedang berjalan.

3.2.20 Aktifkan kursor dan keyboard pada aplikasi terminal yang kedua, dan
ketikan perintah $ pstree

3.2.21 Tuliskan dan jelaskan dengan singkat hasil yang didapatkan pada saat
perintah $ pstree dijalankan!
Perintah $pstree digunakan untuk menampilkan proses pada
sistem dalam bentuk hirarki parent/child.

3.2.22 Tunjukkan dan jelaskan proses apa saja yang saling berhubungan
dengan atau merupakan hasil pembentukan dari proses lain!
Seperti pada proses yang dijalankan oleh gnome-session-b.
dapat dilihat adanya proses update.

3.2.23 Tunjukkan dan jelaskan pula proses yang tidak saling terkait satu dan
lainnya

Proses gjs dan gnome-session-b yaitu 2 proses yang berbeda


dimana tidak ada hubungan antara kedua proses tersebut namun
kedua proses itu memiliki parent yang sama yaitu aiatemd yang
merupakan proses yang dapat berdiri sendiri tanpa adanya proses
lain yang menghasilkannya. Pada pstree dia merupakan parent
dari semua proses.

3.2.24 Apa yang dapat disimpulkan tentang perintah $ pstree?


Perintah $pstree yaitu perintah untuk menampilkan proses
proses yang sedang berjalan sama seperti perintah $ps pada
sistem, tampilan yang tampilkan berupa pohon dimana kita
dapat melihat keterkaitan suatu proses dengan proses lain.

3.3 Tugas Praktikum


Buat tulisan ilmiah yang berisi deskripsi singkat tentang proses dengan fokus
utama dan aturan sebagai berikut:
a. Proses utama yang ditemukan telah berjalan sesaat setelah sistem
operasi linux berhasil dijalankan.
b. Relasi antar proses dan keterkaitannya dengan sistem call fork() dan
exec().
c. Terdiri dari minimal 1000 kata di luar judul, sub judul dan referensi.

(Lembar jawaban di bawah setelah kesimpulan praktikum)

3.4 Kesimpulan Praktikum


3.4.1 Jelaskan apa itu proses!

Proses merupakan sebuah program yang sedang dieksekusi


atau dijalankan. Secara sederhana, sebuah proses baru
dibuat dan dijalankan ketika perintah diberikan oleh pengguna
kepada komputer melalui antarmuka pengguna.

3.4.2 Jelaskan secara rinci dan singkat perbedaan system call exec() dan
fork()!
System call exec mengganti isi proses yang sedang berjalan
dengan informasi baru dari program yang dijalankan terakhir
dan benar-benar beda dari proses sebelumnya. Sedangkan jika
menggunakan fork(), proses yang telah dieksekusi sebelumnya
akan diduplikasi, termasuk berkas yang dibuka, status register,
semua alokasi memori dan juga kode program

3.4.3 Bagaimana urutan proses saat menghidupkan computer?


Pertama tama yaitu komputer akan mengalami proses cold
booting. Lalu saat komputer dihidupkan, processor
menjalankan BIOS dan kemudian BIOS melakukan POST yaitu
memeriksa atau mengecek semua hardware yang ada. Setelah
itu, BIOS akan mencari disk boot untuk menjalankan sistem
operasi dan sistem operasi dapat berjalan dan siap digunakan.
Proses tersebut disebut warm booting (booting komputer pada
saat komputer sudah hidup dan mendapatkan supla listrik.
SISTEM OPERASI
PROSES

Disusun oleh:
Nabila Zaein Dwi Kensiwi
215150601111019

UNIVERSITAS BRAWIJAYA
FAKULTAS ILMU KOMPUTER
PENDIDIKAN TEKNOLOGI INFORMASI
2022
A. Konsep Dasar dan Definisi Proses

Proses merupakan program eksekusi. Suatu proses dapat diartikan lebih


dari kode program, pada eksekusi sebuah proses dilakukan secara berurutan.
Dalam melakukan suatu proses terdapat program counter, register, variable.
Suatu proses membutuhkan resource seperti CPU time, memori, file, dan I/O
device untuk menyelesaikan proses tersebut. Ketika suatu proses membuat
sebuah subproses, sehingga subproses 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
subproses.

B. Status Proses
Pada suatu proses terdapat beberapa status. Setiap status memiliki salah
satu status berikut ini, yaitu:

Diagram Proses

Dengan keterangan sebagai berikut:


1. New, yang berarti proses sedang dibuat.
2. Ready, yaitu proses menunggu jatah waktu siap untuk memasuki CPU untuk
dieksekusi atau diproses.
3. Running, berarti proses sedang dieksekusi oleh CPU. Memiliki 3 tujuan
(dapat langsung ke terminated, dapat kembali lagi ke ready atau lanjut
waiting).
4. Waiting, yang berarti proses menunggu beberapa event yang akan terjadi
(contohnya seperti menunggu untuk menyelesaikan I/O atau menerima
sinyal)
5. Terminated, yang berarti proses sudah selesai diproses atau dieksekusi.
Setiap proses yang terjadi pada sebuah sistem operasi pasti
mendapatkan sebuah Process Control Block atau disingkat PCB yang dapat
memuat informasi tentang proses yang di jalankan (Process ID). PCB ini
merupakan informasi informasi yang diperlukan sebuah sistem operasi untuk
mengendalikan beragam proses yang aktif. PCB mempunyai banyak bagian dari
informasi yang berhubugan dengan proses yang spesifik, seperti:

Process Control Block

1. Pointer, merupakan perubahan dinamis yang dimana suatu perubahan


akan dialokasikan hanya ketika diperlukan saja, yaitu setelah program
dieksekusi.
2. Status Proses, seperti new, ready, running, waiting, halted, dan masih
banyak lagi.
3. Program Counter, menunjukkan suatu stack yang berisi alamat berikutnya
yang akan dieksekusi oleh suatu proses.
4. CPU Register, bervariasi tipe dan jumlahnya tergantung pada arsitektur
atau rancangan computer yang bersangkutan. Register ini termasuk
accumulator, stack pointer, general-purpose register, indeks register, dan
code information pada kondisi apapun.
5. informasi Penjadwalan CPU, berisi prioritas dari suatu proses, pointer ke
antrian penjadwalan, dan juga beberapa parameter penjadwalan yang
lain.
6. Informasi Management Memori, berisi nilai atau baris dan limit register,
page, table, atau segment table tergantung pada sistem memori yang
digunakan oleh ISO.
7. Informasi Pencatatan, jumlah dari CPU dan waktu rill yang digunakan,
jumlah akun, batas waktu, jumlah job atau proses.
8. Informasi status I/O, termasuk dari perangkat I/O yang digunakan pada
proses suatu daftar berkas berkas yang sedang di jalankan.
9. PCB hanya berfungsi sebagai storage atau penyimpanan informasi yang
bervariasi dari proses yang satu dan yang lainnya.

Elemen-elemen dari Process Control Block

C. Operasi pada proses


Untuk operasi pada proses terdaat pembuatan proses seperti:
1. Memberi identitas pada proses yang akan dibuat.
2. Mebyisipkan proses pada list proses.
3. Menentukan prioritas awal proses.
4. Membuat PCB.
5. Mengalokasikan resource awal bagi proses yang akan dioperasikan.
Sedangkan untuk penghentian prosesnya juga perlu diperhatikan sebagai berikut:
 Proses akan berhenti jika telah menyelesaikan pernyataan terkahir dan
meminta ke sistem operasi untuk menghapus dengan sistem call exit.
 Proses untuk mengembalikan data ke parent melalui sistem call wait.
Kemudian proses dihapus dari list atau table sistem dan dilanjutkan
menghapus PCB
 Parent sendiri dapat menghentikan eksekusi proses child dengan
menggunakan sistem call abort.
Penjadwalan proses dalam bentuk antrian lalu disimpan sebagai linkdlist
san berisi pointer awal dan akhir PCB. Tiap PCB memiliki suatu pointer field
yang diproses ke proses berikutnya
1. Job Queue
Semua roses yang masuk ke suatu sistem akan diletakkan kedalam
sini di job queue.
2. Ready Queue
Proses yang ada di memori utama dan menunggu untuk di proses atau
di eksekusi dan diletakkan pada suatu list yang disebut dengan ready queue.
(tempat untuk menyimpan proses yang sedang ready)
3. Device Queue
Deretan proses yang menunggu peralatan I/O tertentu.

D. Penjadwalan Proses
Waktu proses memasuki sebuah sistem, mereka akan diletakkan dalam
antrian job. Proses yang hidup pada memori utama dan siap menunggu untuk
diekseksi disimpan pada daftar ready queue. Header ready queue berisi petunjuk
kepada PCB-PCB awal dan akhir. Setiap PCN memiliki pointer field.
Kasus yang terjadi pada device queue sering terjadi seperti:
 Ketika sebuah proses mengalokasikan CPU, proses tersebut akan berjalan
sebentar lalu berhenti, dan menunggu suatu kejadian tertentu, seperti
penyelesain suatu I/O.
 Pada kasusu tersebut I/O telah diperuntuhkan, atau alat yang berbagi.
Karena adanya banyak proses dalam sistem tersebut dan menyebabkan tape
drive sibuk dengan permintaan I/O untuk proses.
 Maka yang akan terjadi jika hal tersut terjadi yaitu proses dimungkinkan harus
menunggu untuk tape drive. Proses ini disebut device queue.
ready queue dan device queue

Jenis jenis penjadwalan operasi dalam proses ada 3, yaitu:


 Logterm-Scheduler (job scheduler), jenis penjadwalan ini berfungsi
menyeleksi proses proses mana yang harus dibawa ke ready queue.
 Short-term (CPU scheduler), memilih proses proses yang sudah siap untuk
dieksekusi dan dialkasikan CPU ke salah satu proses.
 Medium-term scheduler.

E. Relasi Antar Proses Sistem call fork() dan exec()

System call exec() ini merupakan proses baru yang berbeda dari proses
lainnya atau yang sebelumnya. Maksudnya system call exec() ini mengganti isi
proses yang sedang berjalan dengna informasi baru dari program yang dijalnkan
terkahir. Sedangkan system fork() merupakan proses baru yang dihasilkan persis
dengan proses sebelumnya. Maksudnya apa yang telah dieksekusi sebelumnya
akan dipublikasi, termasuk berkas yang dibuka, status reguste, semua lokasi
memori, dan juga kode program.
Layanan untuk sistem operasi langsung ke program disebut system call
atau API yang merupakan tata cara pemanggil di program aplikasi untuk
memperoleh layanan yang disediakan oleh sistem operasi. System call ini
berupa rutin sistem operasi untuk keperluan tertentu yang spesifik. System call
bertujuan untuj manajemen proses dan deperlukan untuk mengatur proses-
proses yang sedang berjalan. Kita dapat melihat penggunaan system calls untuk
manajemen proses pada sistem operasi unix. Contoh untuk melihat bagaimana
proses system call bekerja dengan baik untuk manajemen proses yaitu fork.
Fork yaitu satu satunya cara untuk membuat sebuah proses baru pada sistem
Unix. Fork membuat duplikasi yang mirip dengan proses lainnya.
Bayangkan yang terjadi pada shell. Shell akan membaca command dari
terminal, lalu melakukan fork pada child, menunggu child untuk mengeksekusi
command, lalu membaca command lainnya ketika terminated. Untuk menunggu
child selesai, parent akan mengeksekusi commad yang dimasukkan oleh user.
Proses child ini akan melakukannya dengan menggunakan system call exec.
Dari ilutrasi tersebut dapat diketahui bagaiman system call dipakai untuk
manajemen proses.
Referensi

Haryanto, e. V. (2012). Sistem Operasi Konsep dan Teori. Yogyakarta: Penerbit Andi.
Pangera, A. A. (2005). Sistem Operasi. Yogyakarta: penerbit Andi.
S, R. (2012). Implementasi System Call Pada Sistem Operasi.

Anda mungkin juga menyukai