Anda di halaman 1dari 66

KELOMPOK 7

Nadif Rayhan Julio Mohede (20081010135)


Reyhan Dela Masyhuri (20081010182)
Muhammad Rayhan Muharram (20081010204)
Muhammad Fernanda Naufal Fathoni (20081010257)
TUGAS 1
1.1 Terdapat 3 tujuan utama system operasi, antara lain (1) mengelola sumber daya pemrosesan
computer seperti mengelola cpu, memory, dan mengendalikan printer. Dalam hal ini system
operasi mengatur kerja dari computer agar dapat bekerja dengan baik antara system system
yang ada di komputer (2) system operasi juga berfungsi untuk menyampaikan kepada pengguna
untuk penggunaan system operasi tersebut. Dalam system operasi ada pengguna yang
menggunakan system operasi tersebut atau yang disebut user interface, hal ini berfungsi untuk
memudahkan dalam penggunaan system operasi. (3) system operasi juga berfungsi untuk
mengesekusi program yang ada di computer seperti program excel, word atau code code
program yang dibuat. Dimana system operasi berfungsi untuk membaca perintah dari user
untuk dijalankan.
1.2 Dalam system komputasi harus terdapat efisiensi penggunaan memory, dalam hal ini
berfungsi supaya penggunaan system operasi tidak lemot atau lelet. Untuk menentukan
penggunaan system operasi secara efisien dengan menggunakan algoritma tertentu supaya
menjadi efisien dalam penggunakan hardware computer. Contohnya dengan kita multitasking
computer akan membaca mana software yang lebih sering digunakan.
1.3 Untuk menjaga sistem operasi kesulitan utamanya adalah menjaga sistem operasi dalam
batasan waktu tetap dari sistem real-time. Jika sistem tidak menyelesaikan tugas dalam jangka
waktu tertentu, hal itu dapat menyebabkan kerusakan seluruh sistem. Oleh karena itu, ketika
menulis sistem operasi untuk sistem waktu nyata, penulis harus yakin bahwa skema
penjadwalannya tidak memungkinkan waktu respons melebihi batasan waktu.
1.4 Argumen yang mendukung untuk memasukkan aplikasi populer ke dalam sistem operasi
adalah bahwa jika aplikasi tersebut disematkan di dalam sistem operasi, kemungkinan besar
akan lebih mampu memanfaatkan fitur-fitur di kernel dan oleh karena itu memiliki keunggulan
kinerja dibandingkan aplikasi yang berjalan di luar kernel. Argumen menentang penyematan
aplikasi dalam sistem operasi biasanya mendominasi, namun: (1) aplikasi adalah aplikasi—bukan
bagian dari sistem operasi, (2) manfaat kinerja apa pun yang dijalankan di dalam kernel
diimbangi oleh kerentanan keamanan, (3) masuknya aplikasi mengarah ke sistem operasi yang
membengkak.
1.5 Perbedaan antara mode kernel dan mode pengguna memberikan bentuk perlindungan
dasar dengan cara berikut. Instruksi tertentu hanya dapat dijalankan ketika CPU dalam mode
kernel. Demikian pula, perangkat keras hanya dapat diakses ketika program dalam mode kernel,
dan interupsi dapat diaktifkan atau dinonaktifkan hanya ketika CPU dalam mode kernel.
Akibatnya, CPU memiliki kemampuan yang sangat terbatas saat mengeksekusi dalam mode
pengguna, sehingga memberlakukan perlindungan sumber daya penting.
1.6 Dalam sistem operasi terdapat beberapa instruksi yang perlu didahulukan, diantaranya yaitu
: mengatur nilai timer (Set value of timer), menghapus memory (clear memory), turn off
interrupts, modify entries in device-status table, akses perangkat I/O (access I/O device).
Sisanya dapat dilakukan dalam mode user.
1.7 Beberapa komputer generasi awal melindungi sistem operasi dengan menempatkannya
dipartisi memori yang tidak dapat dimodifikasi oleh pengguna atau sistem operasi itu sendiri.
Dengan begitu terdapat kelemahan yang muncul karena skema seperti itu. Kelemahan tersebut
adalah Data yang dibutuhkan oleh sistem operasi (password, access control, informasi
akuntansi, dan sebagainya) harus disimpan atau diteruskan melalui memori yang tidak
terlindungi dan dengan demikian dapat diakses oleh pengguna yang tidak berwenang.
1.8 Salah satu kemungkinan adalah memberikan perbedaan yang berbeda dalam kode kernel.
Misalnya, kode tertentu akan memungkinkan perangkat USB dapat memungkinkan perangkat
USB untuk menjalankan driver. Ini berarti bahwa perangkat USB dapat diservis tanpa harus
beralih ke mode kernel, yang pada dasarnya memungkinkan driver perangkat USB untuk
berjalan dalam mode kuasi-pengguna/kernel. Kemungkinan kedua adalah memberikan
perbedaan yang berbeda dalam mode pengguna. Beberapa mode pengguna dapat digunakan
untuk menyediakan kebijakan keamanan yang lebih halus. Mungkin pengguna yang tergabung
dalam grup yang sama dapat mengeksekusi kode satu sama lain. Saat mesin berada dalam
mode ini, seorang anggota grup dapat berlari milik orang lain dalam grup.
1.9 Timer dapat digunakan untuk menghitung waktu saat ini dengan cara berikut: Sebuah
proses dapat menyimpan status lokal dan mengatur timer untuk beberapa waktu. Itu kemudian
dapat ditangguhkan oleh OS. Setelah penghitung waktu berlalu, interupsi akan membangunkan
program. Berdasarkan waktu saat ini yang disimpan oleh proses. Sebelum ditangguhkan dan
waktu saat ini ketika proses terbangun dapat mengukur waktu.

Ini membuat asumsi bahwa proses dapat memperoleh waktu saat ini dengan panggilan sistem
misalnya. Jika proses tidak bisa mendapatkan waktu saat ini, dapat menghitung berapa kali
ditangguhkan dan mengukur waktu seperti itu. Jelas, kedua cara pengukuran waktu tidak ideal.
TUGAS 2
2

2.1 System calls adalah pemanggilan layanan system, tujuan dari system calls adalah memanggil
bagian system untuk melayani user. System calls merupakan jembatan antara user dengan
system operasi. Dimana user menggunakan system calls untuk memanggil system operasi,
contohnya user ingin menyimpan sebuah file, maka system calls akan memanggil system
operasi untuk menyimpan di suatu file. Dalam system operasi system calls berfungsi sebagai
layanan untuk memanggil program yang digunakan oleh pengguna, maka system calls
disediakan dalam bentuk Bahasa tingkat tinggi supaya programmer bisa langsung melakukan
pemanggilan dalam programnya. System calls juga memudahkan programmer dengan
menggunakan API(Application programming interface) karena jika menggunakan system
operasi secara langsung akan sulit karena jenis pemanggilan system operasi sangat banyak. Jadi
API(Application Programing Interface) merupakan suatu kumpulan perintah yang bisa dipanggil.
2.2 Dalam beberapa sistem operasi, penerjemah perintah disebut shell. juru bahasa perintah
biasanya memisahkan kernel karena kernel adalah bagian sentral dari sistem operasi. Ini
mengelola operasi komputer dan perangkat keras - terutama memori dan waktu CPU.

Juga, mengapa pemisahan mekanisme dan kebijakan diinginkan? Pemisahan mekanisme dan
kebijakan penting untuk memberikan fleksibilitas pada suatu sistem. Selain itu, implementasi
yang mendasarinya dapat diubah menjadi lebih efisien tanpa banyak kesulitan jika mekanisme
dan kebijakan didefinisikan dengan baik. Secara khusus, memisahkan keduanya memberikan
fleksibilitas dalam berbagai cara.
2.3 Program sistem berfungsi sebagai bagian dari sistem operasi. Secara umum terletak di
antara antarmuka pengguna dan panggilan sistem. Tampilan pengguna sistem sebenarnya
ditentukan oleh program sistem dan bukan panggilan sistem karena itulah yang berinteraksi
dengannya dan program sistem lebih dekat ke antarmuka pengguna.
2.4 Program execution . Sistem operasi memuat konten (atau bagian) dari sebuah file ke dalam memori dan memulai
eksekusinya. Program tingkat pengguna tidak dapat dipercaya untuk mengalokasikan waktu CPU dengan benar.

B. operasi I/O. Hal ini diperlukan untuk berkomunikasi dengan disk, kaset, dan perangkat lain pada tingkat yang sangat
rendah. Pengguna hanya perlu menentukan perangkat dan operasi untuk dilakukan di atasnya, dan sistem mengubah
permintaan itu menjadi perintah khusus perangkat atau pengontrol. Program tingkat pengguna tidak dapat dipercaya untuk
mengakses hanya perangkat mereka harus memiliki akses ke dan mengaksesnya hanya jika mereka sebaliknya tidak terpakai.

C. . File-system manipulation. Ada banyak detail dalam pembuatan file, penghapusan, alokasi, dan penamaan yang tidak harus
dilakukan pengguna. Blok ruang disk digunakan oleh file dan harus dilacak. Menghapus file memerlukan menghapus informasi
nama file dan membebaskan blok yang dialokasikan. Perlindungan juga harus diperiksa untuk memastikan akses file yang
tepat. Program pengguna tidak dapat memastikan kepatuhan terhadap metode perlindungan atau dipercaya untuk
mengalokasikan saja blok gratis dan membatalkan alokasi blok pada penghapusan file.

D. Communications. Pengiriman pesan antar sistem membutuhkan pesan untuk diubah menjadi paket informasi, dikirim ke
pengontrol jaringan, ditransmisikan melalui media komunikasi, dan dipasang kembali oleh sistem tujuan. Pemesanan paket dan
koreksi data harus dilakukan. Sekali lagi, program pengguna mungkin tidak mengoordinasikan akses ke perangkat jaringan,
atau mereka mungkin menerima paket yang ditujukan untuk proses lain.

e.Error Detection. Deteksi kesalahan terjadi pada perangkat keras dan tingkat perangkat lunak. Pada tingkat perangkat keras,
semua transfer data harus diperiksa untuk memastikan bahwa data tidak rusak dalam perjalanan. Semua data pada media
harus diperiksa untuk memastikan mereka tidak berubah sejak mereka ditulis ke media. Pada tingkat perangkat lunak, media
harus diperiksa untuk konsistensi data—misalnya, apakah jumlah blok penyimpanan yang dialokasikan dan tidak dialokasikan
cocok dengan jumlah total pada perangkat. Di sana, kesalahan sering kali tidak bergantung pada proses (misalnya, kerusakan
data pada disk), jadi harus ada program global (sistem operasi) yang menangani semua jenis kesalahan. Juga, ketika kesalahan
diproses oleh operasi sistem, proses tidak perlu berisi kode untuk menangkap dan memperbaiki semua kesalahan yang
mungkin terjadi pada suatu sistem.
2.7 Firmware biasanya berisi semua kode yang diperlukan untuk mem-boot mesin. Jika
firmware rusak, mesin tidak akan dapat digunakan. Memberikan kesulitan relatif untuk
memutakhirkan firmware dengan aman, seringkali lebih baik menempatkan hanya kode yang
tidak dapat diubah di firmware, dan membuat perubahan / perbaikan apa pun yang diperlukan
untuk sistem operasi pada disk.
2.8 Pertimbangkan sistem yang ingin menjalankan Windows dan tiga distribusi Linux yang
berbeda (misalnya, RedHat, Debian, dan Ubuntu). Setiap sistem operasi akan disimpan pada
disk. Selama boot sistem, program khusus (yang akan kita sebut boot manager) akan
menentukan sistem operasi mana yang akan di-boot. Ini berarti bahwa alih-alih mem-boot ke
sistem operasi, boot manager akan dijalankan terlebih dahuluselama startup sistem. Boot
manager inilah yang bertanggung jawab untukmenentukan sistem mana yang akan di-boot.
Biasanya, manajer boot harus disimpan di lokasi tertentu pada hard disk untuk dikenali
selamamemulai sistem. Manajer boot sering memberi pengguna pilihan sistem untuk boot ke;
manajer boot juga biasanya dirancang untuk boot ke sistem operasi default jika tidak ada
pilihan yang dipilih oleh pengguna.
2.10 3 metode untuk melewati parameter menuju sistem operasi.

(1) Melewati parameter melalui register

(ini mungkin terbukti tidak cukup ketika ada lebih banyak parameter daripada register)

(2) Menyimpan parameter dalam blok, atau tabel, kemudian dalam memori dan meneruskan
alamat blok sebagai parameter dalam register. Pendekatan ini digunakan oleh Linux dan Solaris.

(3) Memindahkan parameter ke stack; agar dapat dimunculkan oleh OS. Metode block dan
stack tidak membatasi jumlah atau panjang parameter yang dilewatkan nantinya.
2.21 - Fungsi dasar di iOS dan Android sama. Baik ponsel iOS dan Android memiliki panggilan, pesan,
penelusuran web, obrolan video, peta, perintah suara, dll.

- Antarmuka pengguna iOS dan Android memiliki banyak kesamaan. Kedua sistem operasi ini mendukung fitur
swiping (menggesekkan), tapping (mengetuk), pinch (mencubit) dan zoom (memperbesar) dan lainnya, di layar
ponsel mereka.

- Ada sebuah bar status pada kedua perangkat iOS dan Android dan menawarkan informasi serupa seperti
baterai, waktu, pemberitahuan aplikasi, wifi dll

Perbedaan antara sistem operasi iOS dan Android, diantaranya adalah :

- iOS adalah sistem tertutup sedangkan Android lebih terbuka. Pengguna hampir tidak memiliki izin sistem di
iOS tetapi di Android, pengguna dapat menyesuaikan ponsel mereka dengan mudah.

- Perangkat lunak Android tersedia untuk banyak produsen seperti Samsung, LG, dll. Dan ini dapat
menyebabkan beberapa masalah kualitas pada ponsel yang lebih murah. Namun, iOS dikontrol secara ketat oleh
Apple dan tidak ada masalah kualitas karena hanya ada beberapa model.

- Integrasi dengan perangkat lain lebih baik di Apple iOS dibandingkan dengan Google Android
TUGAS 3
3

3.1 Panggilan dalam system fork membuat proses baru yang menjadi proses anak, dan proses
tersebut disebut fork disebut sebagai proses induk. Setelah proses anak dibuat proses induk
akan mengesekusi instruksi yang diikuti oleh panggilan system fork. Proses baru membagikan
perhitungan program proses induk, register, file yang ada didalam proses induk. Dari kode
tersebut, proses anak akan memiliki variable 5, sebelum itu dibuat. Setelah ditambahkan 15 ke
dalam dan keluar dengan dibalikkan lagi menjadi 0. Proses induk tidak mengeetahui apa yang
ada dalam proses anak, jadi proses induk hanya menunggu sampai proses selesai dan
mengesekusi menjadi 0. Lalu proses induk sebelulm mengubah nilai variabel, jadi nilainya akan
menjadi 5

3.2 Menurut figure 3.31, 8 proses yang telah diciptakan


3.3 A. Penjadwal CPU harus mengetahui proses konkuren yang berbeda dan harus
memilih algoritma yang sesuai yang menjadwalkan proses-proses yang bersamaan. B.
Proses bersamaan mungkin perlu berkomunikasi satu sama lain, dan sistem operasi
karena itu harus mengembangkan satu atau lebih metode untuk menyediakan
komunikasi antarproses. C. Karena perangkat seluler sering kali memiliki memori yang
terbatas, sebuah proses yang mengelola memori dengan buruk akan berdampak
negatif secara keseluruhan pada proses bersamaan lainnya. Oleh karena itu, sistem
operasi harus mengelola memori untuk mendukung beberapa proses bersamaan
3.4 Pointer CPU current-register-set diubah untuk menunjuk ke set yang berisi konteks baru,
yang membutuhkan waktu sangat sedikit. Jika konteksnya adalah dalam memori, salah satu
konteks dalam set register harus dipilih dan dipindahkan ke memori, dan konteks baru harus
dimuat dari memori ke dalam himpunan. Proses ini membutuhkan waktu sedikit lebih lama
daripada pada sistem dengansatu set register, tergantung pada bagaimana korban pengganti
dipilih.

3.5 Ketika suatu proses menggunakan operasi fork() untuk membuat proses baru, semua proses
baru yang terkait dengan 'parent process' dibuat dan dimuat ke lokasi memori terpisah untuk
'child process' oleh sistem operasi. 'parent process' dan 'child process' yang baru dibuat hanya
berbagi segmen memori bersama.
3.7 Jika sistem terdistribusi rentan terhadap kegagalan server mekanisme yang
diperlukan adalah server harus melacak dalam penyimpanan yang stabil (seperti
log disk) informasi mengenai operasi RPC apa yang diterima, apakah operasi
tersebut berhasil dilakukan, dan hasil yang terkait dengan operasi tersebut. Ketika
terjadi kegagalan server dan pesan RPC diterima, server dapat memeriksa apakah
RPC telah dilakukan sebelumnya dan karenanya menjamin semantik untuk
eksekusi RPC tersebut.
3.8 Secara sederhana context switch memberikan interupsi pada system operasi dan
mengubah inti CPU dari tugasnya untuk menjalankan kernel. Kernel melakukan
context switch Ketika ada interupsi pada system yang membutuhkan untuk
menyimpan pada saat itu untuk proses menjalankan CPU yang memberi manfaat
untuk memulihkan context pada saat proses selesai. Content switch memerlukan
pelaksanaan dari proses dan pemulihan yang berbeda. Ini dinamakan context switch.
Ketika context switch bekerja terjadi penyimpanan yang dilakukan kernel untuk
menyimpan proses sebelumnya, dan menyimpan proses baru yang akan dijalankan.
Variasi kecepatan dari mesin ke mesin tergantung dari kecepatan memory, jumlah
register yang disalin dan keberadaan instruksi instruksi. Kecepatan tipikal adalah
kecepatan mikrodetik.
3.10 init adalah induk dari semua proses. Peran utamanya adalah membuat proses dari
skrip yang disimpan dalam file /etc/inittab. init adalah proses pertama yang dimulai
saat booting sistem komputer

3.12 -OS harus menyimpan PC dan user stack pointer dari proses yang sedang
dijalankan, sebagai respons terhadap interupsi jam dan mentransfer kontrol ke
pengendali interupsi jam kernel -Menyimpan sisa register, serta status mesin lainnya,
seperti status register floating point, dalam proses PCB dilakukan oleh pengendali
interupsi jam. -Penjadwal untuk menentukan proses selanjutnya yang akan dieksekusi
dipanggil OS. -Kemudian status proses selanjutnya dari PCB-nya diambil oleh OS dan
mengembalikan register. Operasi pemulihan membawa prosesor kembali ke keadaan di
mana proses sebelumnya sebelumnya terganggu, dieksekusi dalam kode pengguna
dengan hak akses mode pengguna.ditangguhkan dan mengukur waktu seperti itu.
Jelas, kedua cara pengukuran waktu tidak ideal.
TUGAS 4
TUGAS 4

4.1 1. web server memberikan pelayanan secara terpisah, jika menggunakan single
hanya ada satu pelayanan tidak bisa multi atau banyak sehingga lebih single masih
dibawah performa dari pada multithreading 2. aplikasi pararel seperti perkalian
matriks menjadikan berbagai bagian perkalian matriks digunakan secara pararel
sehingga memiliki peforma yang lebih bagus dari pada single 3. program GUI yang
interaktif dapat dimanfaatkan untuk memantau hal lain yang sedang berjalan
seperti aplikasi, memantau pengguna dan memantau kinerja. sehingga lebih baik
dari pada single
4.2 a) Penguatan kecepatan adalah 1,428 kali.

b) Mempercepat gain adalah 1,81 kali. Penjelasan: untuk menghitung speedup lagi
aplikasi yang memiliki komponen paralel 60 persen menggunakan Hukum Anklahl
adalah speedup yang menyatakan bahwa: Dimana S adalah bagian dari aplikasi yang
harus dijalankan secara serial, dan N adalah jumlah inti pemrosesan.

(a) Untuk N = 2 inti pemrosesan, dan 60%, maka S = 40% atau 0,4 Jadi,
percepatannya adalah 1,428 kali.

(b) Untuk N = 4 inti pemrosesan dan 60%, maka S = 40% atau 0,4 Jadi, percepatannya
adalah: 1,81 kali
4.3 Data pararel. Karena memiliki peforma kerja yang sama ,akan tetapi data
berbeda

4.4

A. Utas tingkat pengguna tidak diketahui oleh kernel, sedangkan kernel menyadari
utas kernel.

B. Pada sistem yang menggunakan model banyak-ke-satu atau banyak-ke-banyak


pemetaan, utas pengguna dijadwalkan oleh pustaka utas, dan kernel
menjadwalkan utas kernel.

C. Utas kernel tidak perlu dikaitkan dengan suatu proses, sedangkan setiap utas
pengguna milik suatu proses. Utas kernel umumnya lebih mahal untuk dirawat
daripada utas pengguna, sebagaimana mestinya direpresentasikan dengan struktur
data kernel.
4.5 Pergantian konteks antara utas(thread) kernel biasanya memerlukan
penyimpanan nilai register CPU dari utas yang dimatikan dan memulihkan register
CPU dari utas baru yang dijadwalkan.

4.6 Ketika sebuah utas(thread) dibuat, utas tersebut tidak memerlukan sumber
daya baru untuk mengeksekusinya, dan utas tersebut berbagi sumber daya seperti
memori dari proses tempat mereka berada. Manfaat berbagi kode adalah
memungkinkan aplikasi memiliki beberapa utas aktivitas yang berbeda, semuanya
dalam ruang alamat yang sama. Sedangkan jika pembuatan proses baru sangat
berat, karena selalu membutuhkan ruang alamat baru untuk dibuat dan bahkan
jika mereka berbagi memori, maka komunikasi antar proses menjadi mahal jika
dibandingkan dengan komunikasi antar utas.
4.7 Ya. Pengaturan waktu sangat penting untuk aplikasi waktu nyata. Jika utas
ditandai sebagai waktu nyata tetapi tidak terikat pada LWP, utas mungkin harus
menunggu untuk dilampirkan ke LWP sebelum dijalankan. Pertimbangkan situasi
di mana utas real-time sedang berjalan (terlampir ke LWP) dan kemudian
melanjutkan untuk memblokir (harus melakukan I/O, telah didahulukan oleh
prioritas yang lebih tinggi utas waktu nyata, sedang menunggu kunci pengecualian
bersama, dll.). Selagi utas waktu nyata diblokir, LWP yang dilampirkan ditugaskan
ke thread lain. Ketika utas waktu-nyata telah dijadwalkan untuk dijalankan lagi,
harus menunggu dulu untuk dilampirkan ke LWP. Dengan mengikat LWP ke utas
waktu nyata, Anda memastikan bahwa utas akan dapat dijalankan dengan
penundaan minimal setelah dijadwalkan.
4.9 1) Server Web yang melayani setiap permintaan dalam utas terpisah.
(2) Diparalelkan aplikasi seperti perkalian matriks di mana bagian-bagian yang
berbeda dari matriks mungkin dikerjakan secara paralel.
(3) Program GUI interaktif seperti debugger di mana: utas digunakan untuk
memantau input pengguna, utas lain mewakili aplikasi yang sedang berjalan, dan
utas ketiga memantau kinerja
4.12 Itu tergantung pada kualitas implementasi Anda dan prioritas Anda. Utas
memiliki potensi untuk menggunakan lebih sedikit memori/berbagi lebih banyak,
dan mungkin berkinerja lebih baik atau lebih buruk daripada proses tergantung
pada primitif sinkronisasi yang Anda gunakan. Di sisi lain, dengan kualitas
implementasi browser yang sangat buruk, apakah Anda benar-benar ingin seluruh
browser dan semua tab Anda mogok ketika satu situs yang buruk menipu browser
untuk mengalokasikan jumlah memori yang tidak terbatas atau lebih buruk?
Implementasi browser multi-proses sangat mirip dengan model pemisahan hak
istimewa di OpenSSH, vsftpd, dll. Anda mengorbankan beberapa sumber daya
agar kernel melindungi Anda dari bug dalam kode Anda.
4.13 Ya. Concurrency berarti adalah suatu kondisi yang ada bahwa lebih dari satu
proses serta utas sedang berlangsung pada saat yang sama. Namun, itu tidak
berarti bahwa proses berjalan secara bersamaan. Penjadwalan tugas
memungkinkan konkurensi, tetapi paralelisme hanya didukung pada sistem
dengan lebih dari satu inti pemrosesan.
TUGAS 5
5.1 n! = n factorial = n * n-1 * n-2 * …. * 2 * 1
5.2 Preemtive scheduling
CPU Lebih efisien
Waktu dan respon preemtive lebih cepat
Lebih fleksibel
Prioritas pada proses yang sering digunakan
Algoritma dapat diatur sedemikian rupa
CPU Dialokasikan untuk proses pada waktu tertentu
Non Preemtive scheduling

CPU Tidak efisien

Waktudan respon lebih lama

Tidak fleksibel atau kaku

Proses secara berurutan tidak tergantung pada proses yang sering digunakan

Algoritma tidak dapat dijadwalkan

CPU dialokasikan ke proses sampai pproses tersebut berhenti sampai menunggu


Rumus hitung :

((P1's waiting time + P1's brust time) +

(P2's waiting time + P2's brust time) +

(P1's waiting time + P1's brust time)) / 3

A. Berapa waktu penyelesaian rata-rata untuk proses ini dengan algoritma penjadwalan FCFS?

-> ((0 + 8) + (7.6 + 4) + (11+ 1) ) / 3 = 10.5333

B. Berapa waktu penyelesaian rata-rata untuk proses ini dengan algoritma penjadwalan SJF?

-> ((0 + 8) + (8.6 + 4) + (7+ 1) ) / 3 = 9.5333


C. Algoritma SJF seharusnya meningkatkan kinerja, tetapi perhatikan bahwa kami memilih untuk menjalankan proses P1 pada
waktu 0 karena kami tidak tahu bahwa dua proses yang lebih pendek akan segera tiba. Hitung berapa rata-rata waktu penyelesaian
jika CPU dibiarkan menganggur untuk 1 unit pertama dan kemudian penjadwalan SJF digunakan. Ingat bahwa proses P1 dan P2
sedang menunggu selama waktu idle ini, sehingga waktu tunggu mereka dapat meningkat. Algoritma ini dapat dikenal sebagai
penjadwalan pengetahuan masa depan.

-> ((6 + 8) + (1.6 + 4) + (0+ 1) ) / 3 = 6.866


5.6 Proses yang membutuhkan servis lebih sering, misalnya proses interaktif seperti editor, dapat
berada dalam antrian dengan kuantum waktu yang kecil. Proses tanpa perlu sering diservis dapat berada
dalam antrian dengan kuantum yang lebih besar, membutuhkan lebih sedikit sakelar konteks untuk
menyelesaikan pemrosesan; membuat penggunaan komputer lebih efisien.

5.7 Banyak algoritma penjadwalan CPU yang diparameterisasi. Misalnya, algoritma RR


membutuhkan parameter untuk menunjukkan irisan waktu. Antrian umpan balik bertingkat memerlukan
parameter untuk menentukan jumlah antrian, algoritma penjadwalan untuk setiap antrian, kriteria yang
digunakan untuk memindahkan proses antar antrian, dan sebagainya. Oleh karena itu, algoritme ini
benar-benar kumpulan algoritme (misalnya, himpunan algoritme RR untuk semua irisan waktu, dan
seterusnya). Satu set algoritme dapat menyertakan yang lain (misalnya, algoritme FCFS adalah
algoritme RR dengan kuantum waktu tak terhingga).
(Jika ada) Apa hubungan antara pasangan himpunan algoritma berikut?

A. Prioritas dan SJF

B. Antrian umpan balik bertingkat dan FCFS

C. Prioritas dan FCFS

D. RR dan SJF

Jawaban:

A. Pekerjaan terpendek memiliki prioritas tertinggi.

B. Level MLFQ terendah adalah FCFS.

C. FCFS memberikan prioritas tertinggi pada pekerjaan yang paling lama ada.

D. Tidak ada.
5.8 algoritme ini mendukung program terikat-I/O namun tidak secara permanen membuat program
terikat-CPU kelaparan. Ini akan mendukung program yang terikat I/O karena permintaan CPU burst
yang relatif singkat. Namun, program terikat-CPU tidak akan kelaparan karena program terikat-I/O akan
relatif sering melepaskan CPU untuk melakukan I/O-nya.
5.9 PCS Scheduling diselesaikan secara lokal ke proses. Ini adalah bagaimana pustaka utas
menjadwalkan utas ke LWP yang tersedia. SCS Scheduling adalah keadaan di mana sistem operasi
menjadwalkan utas kernel. Pada sistem yang menggunakan banyak-ke-satu atau banyak-ke-banyak, dua
model penjadwalan pada dasarnya berbeda. Pada sistem yang menggunakan PCS satu-ke-satu dan SCS
adalah sama.4.12 Itu tergantung pada kualitas implementasi Anda dan prioritas Anda. Utas memiliki
potensi untuk menggunakan lebih sedikit memori/berbagi lebih banyak, dan mungkin berkinerja lebih
baik atau lebih buruk daripada proses tergantung pada primitif sinkronisasi yang Anda gunakan
Di sisi lain, dengan kualitas implementasi browser yang sangat buruk, apakah Anda benar-benar ingin
seluruh browser dan semua tab Anda mogok ketika satu situs yang buruk menipu browser untuk
mengalokasikan jumlah memori yang tidak terbatas atau lebih buruk?

Implementasi browser multi-proses sangat mirip dengan model pemisahan hak istimewa di OpenSSH,
vsftpd, dll. Anda mengorbankan beberapa sumber daya agar kernel melindungi Anda dari bug dalam
kode Anda.
5.11 voluntary context switches terjadi ketika proses telah menyerahkan kendali CPU karena
memerlukan sumber daya yang saat ini tidak tersedia (seperti pemblokiran untuk I/O). Ini sering terjadi
dalam operasi sistem normal. Peralihan konteks sukarela dimulai dengan panggilan ke rutin sleep().
non-voluntary context switches terjadi ketika CPU telah mengambil dari suatu proses, seperti ketika
irisan waktunya telah kedaluwarsa atau telah didahului oleh proses berprioritas tinggi. Hal ini
dipaksakan oleh permintaan langsung dari mekanisme peralihan konteks tingkat rendah yang terdapat
dalam rutinitas mi_switch() dan setrunnable().

5.22 A. Kuantum waktu adalah 1 milidetik: Terlepas dari proses mana yang dijadwalkan, penjadwal
menimbulkan 0,1

biaya pengalihan konteks milidetik untuk setiap pengalihan konteks. Ini menghasilkan penggunaan CPU
1/1.1 * 100 = 91%.
B. Kuantum waktu adalah 10 milidetik: Tugas terikat I/O menimbulkan sakelar konteks setelah
menggunakan hanya 1

milidetik dari kuantum waktu. Oleh karena itu, waktu yang diperlukan untuk menggilir semua proses
adalah 10*1.1

10.1 (karena setiap tugas terikat I/O dieksekusi selama 1 milidetik dan kemudian menimbulkan tugas
sakelar konteks, sedangkan

Tugas terikat-CPU dijalankan selama 10 milidetik sebelum menimbulkan sakelar konteks). Utilisasi
CPU adalah
jadi 20/21.1 * 100 = 94%
TUGAS 6
8.1

• Dua mobil melintasi jembatan satu jalur dari arah yang berlawanan.

• Seseorang menuruni tangga sementara orang lain memanjat

tangga.

• Dua kereta berjalan menuju satu sama lain di jalur yang sama
8.2 Keadaan tidak aman belum tentu menyebabkan kebuntuan, itu hanya berarti bahwa

kita tidak dapat menjamin bahwa kebuntuan tidak akan terjadi. Jadi, itu mungkin

bahwa sistem dalam keadaan tidak aman masih memungkinkan semua proses selesai

tanpa terjadi deadlock. Pertimbangkan situasi di mana suatu sistem memiliki

dua belas resources yang dialokasikan di antara proses P0, P1, dan P2 . resources

dialokasikan sesuai dengan kebijakan berikut:


Saat ini, ada dua resources yang tersedia. Sistem ini dalam keadaan tidak aman. Proses P1 dapat
diselesaikan, sehingga membebaskan total empat resources,

tetapi kami tidak dapat menjamin bahwa proses P0 dan P2

dapat menyelesaikan. Namun, ada kemungkinan bahwa suatu proses dapat melepaskan resources
sebelum meminta resources lebih lanjut. Misalnya, proses P2

bisa melepaskan resources, sehingga meningkatkan jumlah total resources. Ini memungkinkan proses P0
untuk diselesaikan, yang akan membebaskan total sembilan resources, dengan demikian memungkinkan
proses P2 untuk menyelesaikan juga.
8.3 A. Nilai Need for process P0 sampai P4, berturut-turut adalah (0,

0, 0, 0), (0, 7, 5, 0), (1, 0, 0, 2), (0, 0, 2, 0), dan (0, 6, 4, 2).

B. Sistem dalam keadaan aman. Dengan Tersedia sama dengan (1, 5, 2, 0),

proses P0 atau P3 dapat berjalan. Setelah proses P3 berjalan, ia melepaskan

sumber dayanya, yang memungkinkan semua proses lain yang ada untuk berjalan.

C. Permintaan dapat segera dikabulkan. Nilai Tersedia adalah

maka (1, 1, 0, 0). Salah satu urutan proses yang dapat diselesaikan adalah P0, P2,

P3, P1, dan P4.


8.4 Itu mungkin bukan soulisi yang baik karea menghasilkan cakupan yang besar. Lebih baik
didefinisikan penguncian pengamanan secara sempit dan kecil. Dengan melalui pendekatan yang masuk
akal dan menghindari kebuntuan atau kesalahan dan tidak meningkatkan ruang lingkup pemegang kunci

8.6 Argumen untuk menginstal penghindaran kebuntuan dalam sistem adalah bahwa kita dapat
memastikan bahwa kebuntuan tidak akan pernah terjadi. Selain itu, meskipun peningkatan waktu
penyelesaian, semua 5.000 pekerjaan masih bisa berjalan. Argumen yang menentang pemasangan
perangkat lunak penghindar kebuntuan adalah bahwa kebuntuan jarang terjadi, dan biayanya sedikit
ketika terjadi.
8.7 Kelaparan adalah topik yang sulit untuk ditolak, karena itu bisa berarti hal yang berbeda untuk
sistem yang berbeda. Untuk keperluan pertanyaan ini, kami akan mendefinisikan kelaparan sebagai
situasi di mana suatu proses harus menunggu di luar batas yang wajar periode waktu — mungkin tanpa
batas waktu — sebelum menerima yang diminta sumber. Salah satu cara untuk mendeteksi kelaparan
adalah dengan terlebih dahulu mengidentifikasi a periode waktu—T—yang dianggap tidak masuk akal.
Ketika sebuah proses meminta sumber daya, timer dimulai. Jika waktu yang berlalu melebihi T, maka
proses ini dianggap kelaparan.

Salah satu strategi untuk mengatasi kelaparan adalah dengan mengadopsi kebijakan dimana sumber daya
diberikan hanya untuk proses yang telah menunggu paling lama. Misalnya, jika proses Pa telah
menunggu lebih lama untuk sumber daya X daripada proses Pb, permintaan dari proses Pb akan menjadi
ditangguhkan sampai permintaan proses Pa telah dipenuhi. Strategi lain akan kurang ketat. Dalam
skenario ini, sumber daya mungkin diberikan untuk proses yang telah menunggu kurang dari proses lain,
asalkan proses lainnya tidak kelaparan.
8.8 A. Deadlock tidak dapat terjadi, karena ada preemption.

B. Ya. Suatu proses mungkin tidak pernah memperoleh semua sumber daya yang dibutuhkan jika
mereka terus-menerus didahului oleh serangkaian permintaan seperti itu dari proses C

8.9 A Tidak aman. Proses P2, P1, dan P3 dapat diselesaikan, tetapi tidak ada proses yang tersisa yang
dapat diselesaikan.

B Aman. Proses P1, P2, dan P3 dapat diselesaikan. Mengikuti ini,

proses P0 dan P4 juga dapat menyelesaikan


8.10 Ya. Vektor Max mewakili permintaan maksimum yang mungkin dilakukan suatu proses membuat. Saat
menghitung algoritma keamanan, kami menggunakan matriks Need, yang mewakili Max — Alokasi. Cara lain
untuk memikirkan ini adalah Max = Kebutuhan + Alokasi. Menurut pertanyaan, matriks Menunggu penuh
peran yang mirip dengan matriks Kebutuhan; oleh karena itu, Max = Menunggu + Alokasi.

8.11 Tidak, karena mengikuti langsung dengan kondisi hold and wait

8.15 Iya masih mungkin terjadi. (1) Eksklusi mutual dipertahankan, karena tidak dapat dibagikan jika ada
penulisnya.

(2) 'Tahan dan tunggu' dimungkinkan, karena utas dapat menahan satu kunci pembaca—penulis sambil
menunggu untuk mendapatkan yang lain.

(3) Anda tidak dapat mengambil yang sudah terkunci, jadi tidak ada proses pre-emption yang dijalankan.

(4) Penantian melingkar di antara semua utas dimungkinkan.


8.19 Skema penghindaran kebuntuan cenderung meningkatkan overhead runtime karena biaya
melacak alokasi sumber daya saat ini. Namun, skema penghindaran adeadlock memungkinkan
penggunaan sumber daya secara bersamaan daripada skema yang secara statis mencegah
pembentukan kebuntuan. Dalam hal itu, skema penghindaran kebuntuan dapat meningkatkan
throughput sistem

8.22 Jika sistem menemui jalan buntu, ini menyiratkan bahwa setiap proses menahan satu sumber
daya dan menunggu satu lagi. Karena ada 3 proses dan 4 sumber daya, satu proses harus dapat
memperoleh dua sumber daya. Proses ini tidak memerlukan lebih banyak sumber daya dan karena
itu akan mengembalikan sumber dayanya ketika selesai.
TUGAS 7
7

9.1. Name two differences between logical and physical addresses

- Perbedaan antara alamat logic dan fisik adalah alamat logis dihasilkan oleh CPU dalam program. Dan
alamat fisik adalah lokasi yang berada di unit memory

- Semua alamat logis yang dihasilkan CPU untuk suatu program disebut alamat logic, namun kumpulan
semua alamat fisik yang dipetakan ke alamt logic yang sesuai disebut sebagai ruang alamat fisik

- Alamat logic juga disebut sebagai alamat virtual karena alamat logic tidak ada secara fisik untuk memory.
Alamat fisik adalah lokasi dalam unit memory yang dapat diakses secara fisik

- Alamat logic dan alamat fisik yang identic dihasilkan oleh metode pengikatan alamat wakyu kompilasi dan
waktu muat

- Alamat logic dan fisik dihasilkan saat metode pengikatan alamat run time yang berbeda satu sama lain
9.2 2. Why are page sizes always powers of 2?

- Pagging dilakukan dengan cara memecah alamat menjadi halaman dan nomor offset, hal yang
paling efisien untuk memecah alamat menjadi bit halaman X dan bit offset Y dari pada
melakukan operasi aritmatika pada alamat untuk menghitung nomor halaman dan offset.
Karena setiap posisi bit mewakuli pangkat 2 dan pemisahan alamat diantara bit menghasilkan
ukuran halaman yang merupakan pangkat 2
9.3 Keuntungan utama dari skema ini adalah mekanisme yang efektif untuk berbagi kode dan
data. Misalnya, hanya satu salinan editor atau kompiler perlu disimpan dalam memori, dan kode
ini dapat dibagikan

oleh semua proses yang membutuhkan akses ke editor atau kode kompiler. Lain keuntungan
adalah perlindungan kode terhadap modifikasi yang salah. Satu-satunya kelemahan adalah

bahwa kode dan data harus dipisahkan, yaitu biasanya dipatuhi dalam kode yang dihasilkan
kompiler.
9.4 a) Memori logis = 64 halaman = 2⁶ halaman

ukuran setiap kata = 1024 = 2¹⁰

Oleh karena itu total memori logis = 2⁶ x 2¹⁰ = 2¹⁶

Oleh karena itu logical address akan memiliki 16 bit.

b) Memori fisik = 32 frame = 2⁵ bingkai

ukuran setiap kata = 1024 = 2¹⁰

Jadi total ukuran fisik = 2⁵ x 2¹⁰ = 2¹⁵

Oleh karena itu akan ada 15 bit di physical address


9.5 Dengan mengizinkan dua entri dalam tabel halaman untuk menunjuk ke bingkai halaman
yang sama dalam memori, pengguna dapat berbagi kode dan data. Jika kodenya masuk kembali,
banyakruang memori dapat dihemat melalui penggunaan bersama program-program besar
seperti editor teks, kompiler, dan sistem database. "Menyalin" besar jumlah memori dapat
dipengaruhi dengan memiliki tabel halaman yang berbeda menunjuk ke lokasi memori yang
sama. Namun, berbagi kode atau data non-reentrant berarti bahwa setiap pengguna memiliki
akses ke kode dapat memodifikasinya, dan modifikasi ini akan tercermin dalam "copy.
9.7 a. Page = 3 ; Offset = 13

b. Page = 41; Offset = 111

c. Page = 210 ; Offset = 161

d. Page = 634 ; Offset = 784

e. Page = 1953 ; Offset = 1298.8 A. Deadlock tidak dapat terjadi, karena ada preemption.

B. Ya. Suatu proses mungkin tidak pernah memperoleh semua sumber daya yang dibutuhkan
jika mereka terus-menerus didahului oleh serangkaian permintaan seperti itu dari proses C
9.8 Tabel halaman satu tingkat konvensional akan memiliki 210 = 1024 entri.

Tabel halaman terbalik akan memiliki 25 = 32 entri. Jumlah maksimum

memori fisik adalah 216 = 65536 (atau 64 KB.)


9.9 a. Logical address = jumlah halaman * ukuran b. Ukuran physical memory = jumlah frame * ukuran frame
halaman
=64*4*2¹⁰B
= 256*4*2¹⁰B
=2¹⁸B
= 2⁸*2²*2¹⁰B
= 256 KB
=2²⁰B
Untuk mewakili 256KB, physical addressed harus 18 bit.
=1 MB

Untuk mewakili 1MB, logical addressed harus 20 bit.


9.11 Fragmentasi internal Fragmentasi eksternal

1. Dalam fragmentasi internal memori berukuran tetap, blok berukuran persegi ditunjuk untuk diproses. Dalam
fragmentasi eksternal, blok memori berukuran variabel yang ditunjuk untuk metode.

2. Fragmentasi internal terjadi ketika metode atau proses lebih besar dari memori. Fragmentasi eksternal terjadi
ketika metode atau proses dihilangkan.

3. Solusi dari fragmentasi internal adalah blok yang paling cocok. Solusi dari fragmentasi eksternal adalah
compaction, paging dan segmentasi.

4. Fragmentasi internal terjadi ketika memori dibagi menjadi partisi berukuran tetap. Fragmentasi eksternal
terjadi ketika memori dibagi menjadi partisi ukuran variabel berdasarkan ukuran proses.

5. Perbedaan antara memori yang dialokasikan dan ruang atau memori yang dibutuhkan disebut Fragmentasi
internal. Ruang yang tidak terpakai yang terbentuk antara fragmen memori yang tidak bersebelahan terlalu
kecil untuk melayani proses baru, disebut Fragmentasi eksternal.

Anda mungkin juga menyukai