Anda di halaman 1dari 9

Kelompok Soal Pertama: Process Memory

1. Program adalah entitas pasif yang menyimpan serangkaian instruksi yang akan dieksekusi
dalam file, program disimpan dalam harddisk.
Proses adalah entitas aktif yang mengeksekusi serangkaian instruksi (yaitu program).
Proses berhubungan dengan Proses Block Control, Register, dll. Proses tersimpan di dalam
main memory.
Thread ​adalah unit terkecil dalam suatu proses yang bisa dijadwalkan oleh sistem operasi.
Kaitan dari ketiga hal tersebut adalah program jika di jalankan akan menjadi proses, di
mana di dalam proses tersebut terdapat satu atau lebih thread.
2. Contoh Program:
- Web Browser (Google Chrome, Firefox)
- Office Suite (Excel, Word, Powerpoint)
- Games (Pinball, Counter Strike, DOTA, Solitaire)
Contoh Proses:
- init = proses yang pertama kali jalan di Linux
- cpuset = membatasi proses untuk prosesor dan memory node
- kthreadd = kernel thread daemon
Kelompok Soal Kedua: Process Management
1. a. Argumen-argumen yang biasa dijalankan adalah:
ps aux : untuk menampilkan semua proses user maupun root secara detail
ps -eH : Untuk menampilkan hubungan proses parent dan child
ps -eF : Menampilkan proses parent dan child serta letak prosesnya
​ an ps​ untuk menentukan jawaban sesuai atau tidak
Selain diatas, gunakan referensi m

1. b. Waktu suatu proses dimulai akan terlihat pada field START ketika melakukan
perintah ps aux.

1. c. Status pada proses:


● D uninterruptible sleep (usually IO)
● R running or runnable (on run queue)
● S interruptible sleep (waiting for an event to complete)
● T stopped, either by a job control signal or because it is being traced.
● W paging (not valid since the 2.6.xx kernel)
● X dead (should never be seen)
● Z defunct ("zombie") process, terminated but not reaped by its parent.
Karakter tambahan:
● < high-priority (not nice to other users)
● N low-priority (nice to other users)
● L has pages locked into memory (for real-time and custom IO)
● s is a session leader
● l is multi-threaded (using CLONE_THREAD, like NPTL pthreads do)
● + is in the foreground process group.
1. d. Field-field yang dimaksud adalah:
○ PID proses ID dari suatu proses
○ USER login name dari process owner
○ PR prioritas suatu task
○ NI nice value, menghitung prioritas untuk penjadwalan kebijakan
lain
○ VIRT total memori virtual yang digunakan suatu task
○ RES non-swapped physiscal memory yang digunakan
○ SHR jumlah shared memory yang digunakan suatu task
○ S status proses
○ %CPU persentase waktu dari proses yang digunakan sejak proses
dimulai
○ %MEM persentase memori yang digunakan oleh suatu proses
○ TIME+ total waktu eksekusi suatu proses
○ COMMAND menampilkan command name

2. Apa yang terjadi ketika system call ​fork​() dilakukan terhadap suatu proses?

Bila system call ​fork​() dieksekusi, proses lain dibuat. Proses asal disebut proses
parent dan proses kedua disebut proses child. Proses child merupakan duplikat dari
proses parent. Kedua proses melanjutkan eksekusi dari titik dimana system call
fork​() menghasilkan eksekusi pada program utama. Karena UNIX adalah system
operasi time sharing, dua proses tersebut dapat mengeksekusi secara konkuren.
Nilai yang dihasilkan oleh ​fork​() disimpan dalam variable bertipe pid_t, yang berupa
nilai integer

3. Apa perbedaan antara getpid(void) dengan getppid(void)? Mengapa perlu ada ppid
jika pid saja sudah cukup?

Perbedaan mendasar adalah nilai output/return nya. getpid me return process ID


dari proses yang memanggil. Sedangkan getppid me-return process ID dari parent
dari proses yang memanggil. ppid perlu ada karena untuk melakukan ​kill​() ​process

4. Apakah yang dimaksud dengan ​zombie process, orphaned process, dan ​daemon
process​? Apa perbedaan ketiga proses tersebut?’

Orphan : proses yang kehilangan ​intended​ ​parent process ​yang dimilikinya


Daemon : proses yang berjalan di belakang layar. Memiliki ​init process sebagai
parent
Zombie : proses yang sudah mati/selesai, namun masih terdaftar pada tabel proses

Orphan Daemon Zombie

Istilah dialamatkan pada Istilah dialamatkan pada Istilah dialamatkan pada


proses yang sedang berjalan proses yang sedang berjalan proses yang sudah selesai
berjalan

Istilah yang menandakan Istilah yang menandakan Istilah yang menandakan


proses yang diputuskan bahwa proses berjalan pada bahwa ​entry​ proses pada
hubungannya dengan background​ dan memiliki tabel proses masih tersisa
parentnya init sebagai ​parent process walaupun proses sudah
selesai berjalan
5. Bagaimana pencegahan agar ​zombie process tidak terjadi? Apa solusi
permasalahannya jika sudah terjadi?

Zombie process adalah sebuah keadaan dimana suatu process sudah mati, namun
masih ada beberapa proses yang mati namun masih belum dibersihkan secara baik
dan benar. Zombie process biasanya disebabkan oleh child process yang sudah
selesai dieksekusi namun parent tidak melakukan system call ​wait()​​.
Pencegahan dapat dilakukan dengan memastikan bahwa tiap parent proses yang
dibuat ketika mendapat signal SIGCHLD dari child (menyatakan bahwa child
process sudah melakukan exit pada program) pasti akan mengeksekusi system call
wait()​​. Setelah wait() dieksekusi dan parent membaca status “mati” dari child
process, maka zombie status dari child process akan dihapus secara otomatis dari
memory.
Solusi permasalahannya jika sudah terjadi adalah
a. Mengirim SIGCHLD kepada parent process, berharap parent process dapat
melakukan syscall wait() pada children jika dikirimi SIGCHLD
b. Menghentikan/kill parent process. Maka children dari parent process yang
dibunuh akan diadopsi oleh init dan init akan memanggil wait kepada
children
c. Membiarkan proses tersebut sampai system reboot, karena tidak memakan
resource selain memory space dan PID

Kelompok Soal Ketiga: Memory


1. Bisakah Anda menjelaskan struktur memori dari sebuah proses beserta fungsinya?
2. Menurut Anda, mengapa harus ada virtual memori? Apakah pentingnya virtual
memori kalau memori secara fisik saja sudah cukup? Apakah kelebihan dan
kekurangan penggunaan virtual memori?
Supaya bisa run program yang butuh RAM besar. kadang agak lambat gak apa apa
dibandingkan ga bisa jalan sama sekali

Referensi tambahan:
https://ask.slashdot.org/story/08/12/04/217233/why-use-virtual-memory-in-modern-s
ystems

Kelebihan VM=ukuran besar (tergantung dari ukuran local storage/HDD/SSD)


Kekurangan VM=proses berjalan lebih lambat
3. Apa itu memory leak dan bagaimana cara mengatasinya dan pencegahannya
menurut kalian?
Suatu keadaan dimana memori telah teralokasi, namun tidak dipakai. more reason :
https://msdn.microsoft.com/en-us/library/ms859408.aspx

Untuk mengatasi, jangan lupa melakukan free (memori dibebaskan agar dapat digunakan
lagi untuk proses lain) jika menggunakan malloc setelah memori selesai digunakan. More
reason:
http://stackoverflow.com/questions/2983216/ways-to-avoid-memory-leaks-in-c-c

Kelompok Soal Keempat: Makefile


1. Kode yang dicompile adalah : factorial.cpp, hello.cpp, main.cpp

Filename Output

Factorial.cpp Factorial.o

Hello.cpp Hello.o

Main.cpp Main.o

Factorial.o, Hello.o, Main.o Hello


Tahap compile :
Semua kode dicompile dengan perintah "make" dan menghasilkan
- g++ -c -Wall factorial.cpp -o factorial.o
(compile factorial.cpp menjadi sebuah object file dengan nama factorial.o)
- g++ -c -Wall hello.cpp -o hello.o
(compile hello.cpp menjadi sebuah object file dengan nama hello.o)
- g++ -c -Wall main.cpp -o main.o
compile main.cpp menjadi sebuah object file dengan nama main.o)
- g++ main.o hello.o factorial.o -o hello
(melink tiga object file menjadi executable file dengan nama hello)
Output Hello : "Hello World! The factorial of 5 is 120"
Kelompok Soal Kelima: I/O Buffering
1. Apa efek/kegunaan ​buffer size pada beberapa I/O system call (missal: ​read​(),
write​())!
Bergantung pada file yang diakses, buffer size dapat mempercepat proses system call
(mengurangi pemanggilan system call)

2. Dapatkah anda menjelaskan bagaimana proses I/O Buffering berjalan?


3. Lakukan perintah berikut:

● Apa saja yang dilakukan kedua perintah diatas? Apa saja yang dihasilkan?
● Apa saja perbedaan dan persamaan dari dua perintah diatas?
Kegunaan: menghitung waktu yang diperlukan untuk menulis file
Perbedaan: blocksize yang digunakan, isi file dan waktu penulisan
persamaan: besar file

Kelompok Soal Keenam: Process Identifier


1. PID 0: ​swapper a​ tau ​sched
PID 1: ​init
Alasan: PID 0 berfungsi sebagai PID yang akan memunculkan PID 1 (init) dan PID
untuk exit. Sedangkan PID 1 berfungsi sebagai ​parent​ untuk semua proses yang ada.
2. Ada, untuk 32-bit adalah 32768 dan untuk 64-bit adalah 2^22. Jika lebih, maka akan
gagal dan tidak terbuat prosesnya.
3. Bisa, batasnya adalah 2^22. Alasannya sebenarnya tidak ada alasan khusus secata
teknis, hanya saja merupakan kesepakatan bersama dari para pembuat dari sistem
Linux tersebut
Kelompok Soal Keempat: Raspberry Pi
1. https://socialcompare.com/en/comparison/raspberrypi-models-comparison
2. NOOBS, Raspbian, OSMC, OpenElec, Windows 10 IoT Core.
Sistem Operasi bekerja dengan melakukan instalasi sistem operasi yang digunakan pada
alat Raspberry Pi-nya melalui SD Card, ketika instalasi sudah berhasil, masukkan SD Card ke
Raspberry Pi dan nyalakan Raspberry Pi tersebut. Jika berhasil, maka di layar Raspberry Pi
akan muncul proses ​boot​ dari Sistem Operasi yang diinstalasikan
3. Single Board Computer (Contoh: Raspberry Pi):
- Memiliki sebuah sistem operasi
- Bahasa pemrograman yang dapat digunakan ada banyak, salah satunya adalah Python
- Memiliki pin-pin GPIO
- Ukuran RAM bisa mencapai Gigabyte
- Dapat melakukan komputasi tinggi
Micro Controller (Contoh: Arduino UNO):
- Tidak memiliki sistem operasi
- Bahasa pemrograman yang digunakan adalah Assembly, C/C++
- Ukuran RAM biasanya hanya mencapai Megabyte
4. Tipe pin GPIO raspberry pi:

Tipe pin Kegunaan

Power Menghantarkan power keluar dari


raspberry pi sesuai nilai voltasenya

Ground Memberikan referensi nilai voltase 0 pada


rangkaian dan sebagai jalur akhir arus
rangkaian.

PCM/PWM Menghantarkan sinyal sample analog


kepada komponen rangkaian. Berguna
sebagai interface terhadap komponen yang
menerima sinyal analog seperti servo dan
audio DAC

UART Bertindak sebagai serial port. Menjadi


interface untuk berkomunikasi kepada
Rasbperry Pi secara serial atau menjadi
interface komunikasi dengan perangkat
lain yang menerima sinyal serial (i.e
arduino)

SPI Interface komunikasi untuk protokol SPI.


Dapat digunakan untuk berkomunikasi
dengan raspberry pi secara synchronous
jika diaktifkan. Contoh aplikasi adalah
penggunaan touchscreen display (yang
biasanya diakses melalui protokol SPI)

I2C Interface untuk device yang dapat


berkomunikasi dengan protokol I2C. Dapat
berguna untuk berkomunikasi dengan
raspberry secara asynchronous.

Standard Pin Tipe pin yang dapat mengirimkan sinyal


standar HIGH (3.3v) atau LOW (0 v)

GPCLK Tipe pin yang dapat mengirimkan sinyal


dalam frekuensi yang teratur tanpa
dikontrol oleh program.
Referensi:
https://pinout.xyz/pinout
https://www.makeuseof.com/tag/raspberry-pi-gpio-pins-guide/

Anda mungkin juga menyukai