Anda di halaman 1dari 5

Ujian Tengah Semester Operating Systems

1. Jawaban:
a. Perangkat eksternal memiliki kecepatan yang lebih lambat daripada CPU. Jadi,
pada ketiadaan dari interrupt, instruksi akan langsung berada dalam keadaan
HALT dan kinerja prosesor menjadi tidak efisien.

b. Jawaban:
1) Karena, Linux adalah paket lengkap sebagai Sistem Operasi dimana sebagian
besar driver dikemas dan didistribusikan dengan Kernel sehingga untuk
menghindari instalasi driver setup pada Linux.

2) Karena, akses perangkat keras dilakukan dengan proses memory mapping


akibat driver perangkat keras perlu instalasi di Linux.

3) Yang terjadi ketika kernel tidak mengenali sebuah hardware yang terpasang:
Terjadi kegagalan dalam kernel dan galat. Juga terjadi kesalahan dalam setup
hardware driver.

c. Sistem Operasi tidak harus mencerminkan pemahaman tentang sifat perangkat I/O
(disk drive, tape drive) tetapi juga struktur data yang ada di dalam file pada media
penyimpanan. Dalam kasus sistem yang melibatkan banyak pengguna, OS dapat
menyediakan mekanisme perlindungan untuk mengontrol akses ke satu file atau
file lain. Contoh: File file BIMAY yang memiliki kata-kata untuk mengakses file
tersebut.

2. Jawaban:
a. Perbedaan:
1) Trap dipicu oleh program pengguna untuk menjalankan fungsionalitas OS,
sedangkan interupsi dipicu oleh perangkat keras untuk memungkinkan
prosesor menjalankan routine penanganan interupsi yang sesuai.
2) Trap dibentuk oleh instruksi di program pengguna, sedangkan interrupt
dibentuk oleh hardware devices
3) Trap mengirim kendali kepada trap handler, sedangkan interrupt memicu
prosesor untuk mengeksekusi interrupt handler routine.
4) Trap bersifat Sinkron dan itu tiba setelah eksekusi dari segala instruksi,
sedangkan interrupt tiba ketika eksekusi dari segala instruksi sedang
terjadi dan bersifat Asinkron.

b. Pemanggilan sistem fork() digunakan untuk membuat proses. Tidak diperlukan


argumen dan mengembalikan ID proses. Tujuan dari fork() adalah untuk
membuat proses baru, yang menjadi proses anak dari pemanggil. Setelah proses
anak baru dibuat, kedua proses akan mengeksekusi instruksi berikutnya setelah
panggilan sistem fork(). Oleh karena itu, kita harus membedakan orang tua dari
anak. Ini dapat dilakukan dengan menguji nilai yang dikembalikan dari fork():
1) Jika fork() mengembalikan nilai negatif, maka proses anak gagal dibuat.
2) fork() mengembalikan nol ke proses anak yang baru dibuat.
3) fork() mengembalikan nilai positif, ID proses dari proses anak, ke proses
induk. ID proses yang dikembalikan bertipe pid_t yang didefinisikan di
sys/types.h. Biasanya, ID proses adalah bilangan bulat. Selain itu, suatu
proses dapat menggunakan fungsi getpid() untuk mengambil ID proses
yang ditetapkan untuk proses ini.

Oleh karena itu, setelah panggilan sistem ke fork(), tes sederhana dapat
mengetahui proses mana yang merupakan anak. Harap dicatat bahwa Unix
akan membuat salinan persis dari ruang alamat orang tua dan
memberikannya kepada anak. Oleh karena itu, proses induk dan anak
memiliki ruang alamat yang terpisah. Contoh penerapan:
//penerapan
//Sumber:
/*https://www.csl.mtu.edu/cs4411.ck/www/NOTES/process/fork/create.ht
ml*/
#include <stdio.h>
#include <sys/types.h>

#define MAX_COUNT 400

void ChildProcess(void); /* child process prototype */


void ParentProcess(void); /* parent process prototype */

void main(void)
{
pid_t pid;

pid = fork();
if (pid == 0)
ChildProcess();
else
ParentProcess();
}

void ChildProcess(void)
{
int i;

for (i = 1; i <= MAX_COUNT; i++)


printf(" This line is from child, value = %d\n", i);
printf(" *** Child process is done ***\n");
}
void ParentProcess(void)
{
int i;

for (i = 1; i <= MAX_COUNT; i++)


printf("This line is from parent, value = %d\n", i);
printf("*** Parent is done ***\n");
}

3. Jawaban:
a. Jawaban:
1) Karena, Mereka tidak dapat diprogram setelah logika program telah di-
burn ke dalam ROM dan tidak berinteraksi dengan pengguna. Mereka
menggunakan mikrokontroler.

2) Kurangnya fleksibilitas untuk menjalankan aplikasi melalui embedded


system, Masalah Keamanan Dalam Desain Embedded System, Disipasi
Daya Tinggi dari Embedded System

Contoh: Sulit beradaptasi dengan lingkungan baru, dan lain-lain

b. Masalah:
1) Memory Stall: Terjadi ketika hilangnya cache

2) Masalah alokasi itu adalah masalah yang menentukan di mana harus


menjalankan tugas sambil mengabaikan urutan tugas

4. Jawaban:
a. Pada sistem multiprosesor, beberapa thread dapat berjalan secara bersamaan di
beberapa CPU. Oleh karena itu, program multithreaded dapat berjalan lebih cepat
daripada sistem uniprosesor. Mereka juga bisa lebih cepat daripada program yang
menggunakan banyak proses, karena thread membutuhkan lebih sedikit sumber daya
dan menghasilkan lebih sedikit overhead.

b. Perbedaan:
Threading adalah tentang menjalankan beberapa thread sekaligus. Perbedaan intinya
adalah bahwa thread adalah konteks eksekusi terpisah yang dapat berjalan secara
independen dari thread utama. Thread utama dan yang lainnya adalah bagian dari
proses yang sama.

5. Jawaban:
a. Waktu tunggu rata-rata = 6.5 dan Waktu turn around rata-rata = 11.5
b. Slkjkfsldkfj
6. Jawaban:
a. Penjelasan
1) Multiprocessing: Beberapa prosesor menawarkan kesempatan untuk eksekusi
yang bersamaan. Paling umum, setiap tugas ditugaskan ke proses dalam prosesor
tertentu, tetapi dalam beberapa keadaan tugas dapat ditugaskan ke prosesor
berikutnya yang tersedia secara dinamis. Mungkin cara yang paling mudah untuk
melakukan hal ini adalah dengan menggunakan "multiprosesor simetris." Dalam
konfigurasi perangkat keras seperti itu, beberapa CPU dapat mengakses memori
melalui bus umum.
2) Multithreading: Banyak sistem operasi, terutama yang digunakan untuk aplikasi
real-time, menawarkan alternatif yang “lebih ringan” untuk proses, yang disebut
“thread” atau “thread ringan”.
3)

b.

Anda mungkin juga menyukai