Anda di halaman 1dari 12

TUGAS PEMBAHASAN BAB I DAN BAB II

DESAIN DAN PRAKTEK SISTEM OPERASI

OLEH:

NIM : 147038071
NAMA : MAHARDIKA ABDI PRAWIRA TANJUNG
KELAS : KOM C 2014
PRODI : MAGISTER TEKNIK INFORMATIKA
DOSEN : BAPAK DR. POLTAK SIHOMBING, M. KOM

PROGRAM STUDI MAGISTER TEKNIK INFORMATIKA


FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI
UNIVERSITAS SUMATERA UTARA
MEDAN
2016
BAB I

1. Multiprogramming adalah kegiatan yang dilakukan CPU untuk dapat bisa beralih secara
cepat dari CPU dan beberapa memori processesing untuk melaksanakan proses atau
pekerjaan yang diinputkan melalui media input secara bersamaan. Hal ini biasanya
digunakan untuk menjaga CPU untuk mengerjakan satu atau lebih proses melakukan I/O.

2. Spooling adalah suatu teknik membaca data dalam pekerjaan, misalnya, dari kartu ke disk
(harddisk), sehingga ketika proses sedang dijalankan selesai, akan ada pekerjaan
menunggu untuk CPU. Output spooling terdiri dari yaitu; pertama menyalin file untuk
dapat dicetak ke disk sebelum mencetaknya dari pada mencetak langsung sebagai output
yang dihasilkan. Masukan spooling pada komputer pribadi tidak sangat mungkin, tetapi
hasilnya adalah spooling.

3. Implikasi ketiadaan DMA terhadap multiprogramming adalah untuk memberikan CPU


sesuatu untuk dilakukan sambil menunggu I/O selesai bekerja. Jika tidak memiliki DMA,
CPU akan dipenuhi perintah dari I/O, sehingga tidak ada yang bisa diperoleh dengan
multiprogramming. Tidak peduli berapa banyak I/O yang mengakibatkan CPU akan
100% sibuk. Hal ini tentu saja mengasumsikan penundaan utama yaitu menunggu pada
saat data akan disalin. Sebuah CPU bisa melakukan pekerjaan lain jika I/O yang lambat
untuk alasan lainnya.

4. System 360 mainframe untuk saat ini masih bisa digunakan sebagai prototype. Sebagai
contoh, Intel membuat versi Pentium I, II, dan III, dan IV. CPU dengan berbagai model
dan arsitektur yang berbeda termasuk kecepatan dan konsumsi daya. Semua mesin ini
ber-arsitektur kompatibel. Perbedaannya hanya pada harga dan kinerja, yang merupakan
esensi dari gagasan setiap tipe.

5. Untuk mendukung garis 25x80 karakter layar teks monokrom membutuhkan buffer 2000
byte. Pada 1024x768 pixel warna 24-bit, bitmap membutuhkan 2.359.296 byte. Pada
tahun 1980 dua pilihan akan biaya $10 dan $11.520, masing-masing. Untuk harga saat ini,
memeriksa berapa banyak RAM saat ini biaya, mungkin kurang dari $ 1/MB

6. Tujuan dalam desain sistem operasi adalah sumber daya, pemanfaatan, ketepatan waktu,
ketahanan. Ada dua tujuan yang mungkin akan bertentangan satu sama lain yaitu
pertimbangkan keadilan dan realtime. Keadilan mensyaratkan bahwa setiap proses
dialokasikan sumber dayanya dengan cara yang adil, tanpa proses mendapatkan lebih dari
adil dan berbagi. Di sisi lain, real time mensyaratkan bahwa sumber daya dialokasikan
berdasarkan pada saat-saat proses yang berbeda harus menyelesaikan eksekusi mereka.
Misalnya; Realtime A proses mungkin mendapatkan bagian yang tidak proporsional dari
sumber daya.
7. Instruksi-instruksi yang harus dibatasi dalam mode kernel adalah;
(a) Nonaktifkan semua yang menyela.
(c) Mengatur timing
(d) Mengubah peta memori.

8. Sebuah sistem yang memiliki dua CPU dan masing-masing CPU memiliki dua
core(HyperThreading). Misalkan tiga program, PO, PI, dan P2, yang dimulai dengan
kecepatan 5x, 10x dan 20x, masing-masing. Waktu yang dibutuhkan untuk menyelesaikan
pelaksanaan program ini yang diasumsikan bahwa ketiga program adalah 100% CPU

Desain dan Praktek Sistem Operasi 2


terkait, tidak menghalangi selama eksekusi, dan tidak mengubah CPU pernah ditugaskan.
CPU akan mengambil 20, 25 atau 30 msec untuk menyelesaikan pelaksanaan program,
tergantung pada bagaimana jadwal sistem operasi mereka. Jika P0 dan P1 dijadwalkan
pada CPU yang sama dan P2 dijadwalkan pada CPU lain, itu akan mengambil 20 UMK.
Jika P0 dan P2 dijadwalkan pada CPU yang sama dan P1 dijadwalkan pada CPU lain,
akan memakan waktu 25 msec. Jika P1 dan P2 dijadwalkan pada CPU yang sama dan P0
dijadwalkan pada CPU lain, akan memakan waktu 30 msec. Jika ketiganya pada CPU
yang sama, akan memakan waktu 35 msec.

9. Sebuah komputer memiliki pipa dengan empat tahap. Setiap tahap membutuhkan waktu
yang sama untuk melakukannya bekerja, yaitu, 1 nsec. Maka instruksi per detik dapat
mengeksekusi mesin ini adalah Setiap satu instruksi nanodetik muncul dari pipa. Ini
berarti mesin mengeksekusi 1 miliar instruksi per detik. Tidak peduli sama sekali berapa
banyak pipa tahap memiliki. Sebuah pipa 10-stage dengan 1 nsec per tahap juga akan
mengeksekusi 1 miliar instruksi per detik.

10. Pertimbangkan sebuah sistem komputer yang memiliki memori cache, memori utama
(RAM) dan disk, dan sistem operasi menggunakan memori virtual. Dibutuhkan 2 nsec
untuk mengakses sebuah kata dari cache, 10 nsec untuk mengakses sebuah kata dari
RAM, dan 10 ms untuk mengakses sebuah kata dari disk. Jika tingkat hit cache 95% dan
memori utama hit rate (setelah cache miss) adalah 99%, maka waktu rata-rata untuk
mengakses sebuah kata (words) adalah;
Average access time
= 0.95 × 2 nsec (word is cache)
+ 0.05 × 0.99 × 10 nsec (word is in RAM, but not in cache)
+ 0.05 × 0.01 × 10,000,000 nsec (word on disk only)
= 5002.395 nsec
= 5.002395 ìsec

11. Resensi peringatan pemberitahuan kesalahan ejaan konsisten dalam naskah yang
beroperasi buku sistem yang hendak pergi ke tekan. Buku ini memiliki sekitar 700
halaman, masing-masing dengan 50 baris 80 karakter masing-masing. Berapa lama waktu
yang dibutuhkan untuk elektronik memindai teks untuk kasus copy master berada di
masing-masing tingkat memori Gambar. 1-9? Untuk metode penyimpanan internal,
pertimbangkan bahwa waktu akses yang diberikan adalah per karakter, untuk perangkat
disk yang menganggap waktu adalah per blok dari 1024 karakter, dan untuk pita
menganggap waktu yang diberikan ke awal data dengan akses berikutnya pada saat yang
sama mempercepat sebagai akses disk. Naskah berisi 80 × 50 × 700 = 2,8 juta karakter.
Hal ini, Tentu saja, tidak mungkin untuk masuk ke dalam register dari setiap CPU saat ini
tersedia dan terlalu besar untuk cache 1 MB-, tetapi jika perangkat keras seperti yang
tersedia, Naskah dapat dipindai dalam 2,8 msec dari register atau 5,8 msec dari cache.
Ada sekitar 2700 blok 1024-byte data, sehingga pemindaian dari disk akan membutuhkan
sekitar 27 detik, dan dari pita 2 menit 7 detik. Tentu saja, kali ini hanya untuk membaca
data. pengolahan dan menulis ulang data akan memperlama waktu.

12. Ketika program pengguna membuat sistem panggilan untuk membaca atau menulis file
disk, ia menyediakan indikasi file yang mereka inginkan, sebuah pointer ke buffer data,
dan menghitung. Kontrol kemudian ditransfer ke sistem operasi, yang memanggil driver
yang sesuai. Mengira bahwa driver mulai disk dan berakhir sampai interupsi terjadi.
Dalam kasus membaca dari disk, jelas pemanggil harus diblokir (karena ada tidak ada
data untuk itu). Bagaimana dengan kasus menulis ke disk? Perlu pemanggil akan
memblokir menunggu penyelesaian transfer disk? Sangat dimungkinka. Jika memanggil

Desain dan Praktek Sistem Operasi 3


dan mendapatkan kembali kontrol dan segera menimpa data, ketika menulis akhirnya
terjadi, data yang salah akan ditulis. Namun, jika driver pertama salinan data ke buffer
pribadi sebelum kembali, maka pemanggil dapat diizinkan untuk melanjutkan segera.
Kemungkinan lain adalah untuk memungkinkan penelpon untuk melanjutkan dan
memberikan sinyal ketika buffer dapat digunakan kembali, tapi ini rumit dan rawan
kesalahan.

13. Yang dimaksud dengan instruksi trap dan penggunaannya dalam sistem operasi dalah
sebuah instruksi trap beralih modus eksekusi CPU dari mode pengguna ke mode kernel.
Instruksi ini memungkinkan program pengguna untuk memanggil fungsi dalam kernel
sistem operasi.

14. Perbedaan utama antara trap dan interrupt adalah trap (jebakan) ini disebabkan oleh
program dan sinkron dengan itu. Jika program dijalankan lagi dan lagi, interrupt akan
selalu terjadi tepat pada posisi yang sama dalam aliran instruksi. Interupsi disebabkan
oleh peristiwa eksternal dan waktunya tidak direproduksi.

15. Tabel proses yang dibutuhkan dalam sistem time sharing ? Apakah juga dibutuhkan
dalam pribadi sistem komputer di mana hanya satu proses yang ada , bahwa proses
mengambil alih seluruh mesin sampai selesai? Tabel proses yang dibutuhkan untuk
menyimpan keadaan suatu proses yang saat ini ditangguhkan, baik siap atau diblokir. Hal
ini tidak diperlukan dalam sistem proses tunggal karena proses tunggal tidak pernah
ditangguhkan.

16. Alasan mengapa melakukan mount file system pada direktori nonmpty adalah Mount file
system membuat file yang sudah di direktori mount point tidak dapat diakses, sehingga
mount point biasanya kosong. Namun, administrator sistem mungkin ingin menyalin
beberapa file yang paling penting biasanya terletak di direktori mount ke mount point
sehingga mereka dapat ditemukan dalam mereka jalur normal dalam keadaan darurat bila
perangkat terpasang sedang diperbaiki.

17. Tujuan dari sistem call dalam sistem operasi adalah system call memungkinkan proses
pengguna untuk mengakses dan menjalankan fungsi-fungsi sistem operasi dalam kernel.
Program-program pengguna menggunakan sistem panggilan untuk memanggil layanan
sistem operasi.

18. Untuk setiap panggilan sistem berikut , memberikan kondisi yang menyebabkan
kegagalan (fail), fork ,exec , dan hapus adalah Fork bisa gagal jika tidak ada slot bebas
yang tersisa di tabel proses (dan mungkin jika tidak ada memori atau pertukaran left
space). Exec dapat gagal jika nama file yang diberikan tidak ada atau bukan file
executable yang valid. Unlink dapat gagal jika file menjadi linknya tidak ada atau proses
pemanggilan tidak memiliki wewenang untuk menghapus link itu.

19. Dapatkah count = write ( fd , buffer , nbytes ) ; panggilan mengembalikan nilai apapun
dalam hitungan selain nbytes ? Jika demikian, mengapa? Jika panggilan gagal, misalnya
karena fd tidak benar, dapat kembali -1. Hal ini juga dapat gagal karena disk penuh dan
tidak mungkin untuk menulis jumlah byte yang diminta. Pada terminasi yang benar, selalu
kembali nbytes.

20. Sebuah file yang deskripsi file adalah fd berisi urutan berikut byte : 3 , 1 , 4 , 1 , 5 ,9 , 2 ,
6 , 5 , 3 , 5 . Panggilan sistem berikut dibuat : lseek ( fd , 3 , SEEK_SET ); read ( fd , &
penyangga , 4 ) ; di mana saya mencari panggilan membuat berusaha untuk byte 3 file.

Desain dan Praktek Sistem Operasi 4


Apa penyangga mengandung setelah membaca telah selesai ?Maka akan berisi byte: 1, 5,
9, 2.

21. Misalkan file 10 - MB disimpan pada disk pada jalur yang sama ( jalur # : 50 ) dalam
berturut-turut sektor . Lengan disk saat ini terletak di atas track nomor 100. Berapa lama
yang dibutuhkan untuk mengambil file ini dari disk ? Asumsikan bahwa pindah dari satu
lengan silinder ke yang berikutnya memakan waktu sekitar 1 ms dan dibutuhkan sekitar 5
ms untuk sektor dimana awal file disimpan untuk memutar di bawah kepala. Juga ,
menganggap membaca yang terjadi pada tingkat 100 MB / s . Time to retrieve the file = 1
* 50 ms (Time to move the arm over track # 50)+ 5 ms (Time for the first sector to rotate
under the head)+ 10/100 * 1000 ms (Read 10 MB)= 155 ms

22. Apa perbedaan esensial antara file khusus blok dan karakter khusus File? Memblokir file
khusus terdiri dari blok nomor, masing-masing yang dapat dibaca atau ditulis secara
independen dari semua yang lain. Hal ini dimungkinkan untuk berusaha blok apapun dan
mulai membaca atau menulis. Hal ini tidak mungkin dengan karakter file khusus.

23. Dalam contoh yang diberikan pada Gambar . 1-17 , prosedur library disebut membaca dan
sistem menyebut dirinya disebut dibaca . Itu penting bahwa kedua memiliki nama yang
sama ? Jika tidak, mana yang lebih penting ? Panggilan sistem tidak benar-benar memiliki
nama, selain dalam arti dokumentasi. Ketika library procedure membaca perangkap untuk
kernel, menempatkan jumlah system call di register atau di stack. Nomor ini digunakan
untuk mengindeks ke dalam tabel. Sebenarnya tidak ada nama yang digunakan di mana
saja. Di sisi lain, nama prosedur perpustakaan ini sangat penting, karena itu adalah apa
yang muncul dalam program.

24. Model client-server yang populer dalam sistem terdistribusi . Bisa juga digunakan dalam
satu sistem komputer ?Ya bisa, terutama jika kernel adalah sistem penyampaian pesan.

25. Untuk programmer, system call tampak seperti setiap panggilan lain untuk library
procedure. Apakah penting bahwa programmer tahu mana library procedure yang
mengakibatkan panggilan sistem ?Dalam keadaan apa dan mengapa ? Sejauh logika
program yang bersangkutan tidak peduli apakah panggilan ke library procedure hasil
prosedur dalam sebuah sistem. Tetapi jika kinerja adalah masalah, jika tugas dapat dicapai
tanpa sistem panggilan program akan berjalan lebih cepat. Setiap system call melibatkan
waktu overhead dalam beralih dari konteks pengguna dengan konteks kernel. Selanjutnya,
pada sistem multiuser sistem operasi dapat menjadwalkan proses lain untuk menjalankan
ketika system call selesai, semakin memperlambat kemajuan secara real time dari proses
panggilan.

26. Gambar 1-23 menunjukkan bahwa jumlah panggilan sistem UNlX tidak memiliki Win32
API setara . Untuk setiap panggilan yang terdaftar sebagai tidak memiliki setara Win32 ,
apa konsekuensi untuk programmer mengkonversi program UNlX untuk berjalan di
bawah Windows? Beberapa panggilan UNIX tidak memiliki mitra dalam Win32 API
Link: sebuah program Win32 tidak dapat merujuk ke file dengan nama alternatif atau
melihatnya di lebih dari satu direktori. Juga, mencoba untuk membuat link adalah cara
yang nyaman untuk menguji dan membuat kunci pada file. Mount dan umount: program
Windows tidak bisa membuat asumsi tentang nama path standar karena sistem on dengan
beberapa disk drive nama drive bagian dari path mungkin berbeda. Chmod: Windows
menggunakan daftar kontrol akses Kill: Windows programmer tidak bisa membunuh
program perusak yang tidak bisa bekerja sama.

Desain dan Praktek Sistem Operasi 5


27. Sebuah sistem operasi portabel adalah salah satu yang dapat porting dari satu arsitektur
sistem untuk lain tanpa modifikasi apapun. Jelaskan mengapa layak untuk membangun
sebuah operasi sistem yang benar-benar portabel. Jelaskan dua lapisan tingkat tinggi
bahwa Anda akan memiliki dalam merancang sebuah sistem operasi yang sangat portabel.
Setiap arsitektur sistem telah menetapkan sendiri instruksi yang dapat mengeksekusi. Jadi
Pentium tidak dapat menjalankan program SPARC dan SPARC tidak dapat mengeksekusi
program Pentium. Juga, arsitektur yang berbeda berbeda dalam arsitektur bus yang
digunakan (seperti VME, ISA, PCI, MCA, SBus, ...) serta kata ukuran CPU (biasanya 32
atau 64 bit). Karena perbedaan ini di perangkat keras, itu tidak layak untuk membangun
sebuah sistem operasi yang benar-benar portabel. Sebuah sistem operasi yang sangat
portabel akan terdiri dari dua lapisan tingkat tinggi-lapisan machine dependent dan
lapisan mesin yang independen. Lapisan Mesin-dependent alamat spesifik dari perangkat
keras, dan harus dilaksanakan secara terpisah untuk setiap arsitektur. Lapisan ini
menyediakan antarmuka seragam dimana lapisan mesin-independen dibangun. Lapisan
Mesin-independen harus dilaksanakan hanya sekali. Untuk menjadi sangat portabel,
ukuran lapisan machinedependent harus dijaga sekecil mungkin.

28. Pemisahan kebijakan dan mekanisme bantuan dalam membangun mikro kernel berbasis
sistem operasi adalah Pemisahan kebijakan dan mekanisme memungkinkan OS desainer
untuk menerapkan sejumlah kecil primitif dasar di kernel. Primitif ini disederhanakan,
karena mereka tidak tergantung dari setiap kebijakan tertentu. Mereka kemudian dapat
digunakan untuk menerapkan mekanisme yang lebih kompleks dan kebijakan di tingkat
pengguna.

BAB II

1. Pada Gambar.2-2 , tiga proses yang akan ditampilkan. Secara teori, dengan tiga state,
mungkin ada enam transisi, dua dari masing-masing state. Namun, hanya empat transisi
yang akan ditampilkan. Apakah ada keadaan yang salah satu atau kedua dari transisi yang
hilang mungkin terjadi? Transisi yang diblokir untuk menjalankan secara virtual.
Misalkan proses yang diblokir pada I/O. Jika CPU tidak menganggur, proses running dari
diblokir untuk berjalan. Transisi yang hilang lainnya, dari siap untuk diblokir, adalah
mustahil. Sebuah proses siap tidak dapat melakukan I / O atau hal lain yang mungkin blok
itu. Hanya proses yang berjalan dapat memblokir.

2. Untuk merancang sebuah arsitektur komputer canggih tanpa proses switching di hardware,
terhadap interupsi . Informasi apa yang akan CPU butuhkan? Jelaskan bagaimana Proses
hardware switching bekerja? Sebuah register yang berisi pointer ke tabel proses saat ini.
Ketika I/O selesai, CPU akan menyimpan keadaan mesin saat ini dalam tabel proses saat
ini. Kemudian ke vektor interupsi untuk perangkat dan mengambil pointer ke lain tabel
proses (prosedur pelayanan).

3. Pada semua komputer saat ini, setidaknya sebagian dari penangan interrupt ditulis dalam
bahasa assembly. Karena, proses ini kemudian akan dimulai. Umumnya, bahasa tingkat
tinggi tidak memungkinkan jenis akses ke perangkat keras CPU yang dibutuhkan.
Misalnya, interrupt handler mungkin diperlukan untuk mengaktifkan dan menonaktifkan
interrupt melayani perangkat tertentu, atau untuk memanipulasi data dalam sebuah proses
stack area. Juga, rutinitas layanan interupsi harus mengeksekusi secepat mungkin.

Desain dan Praktek Sistem Operasi 6


4. Ketika interupsi atau system call transfer kontrol ke sistem operasi, setumpuk daerah
kernel terpisah dari tumpukan proses terputus umumnya digunakan. Karena, ada beberapa
alasan untuk menggunakan pipe yang terpisah untuk kernel. Dua di antaranya adalah
sebagai berikut. Pertama, Anda tidak ingin sistem operasi untuk masalah karena program
pengguna yang ditulis dengan buruk tidak memungkinkan untuk cukup ruang stack.
Kedua, jika kernel data yang (stack) tumpukan dalam program pengguna ruang memori
setelah kembali dari panggilan sistem, pengguna berbahaya mungkin dapat menggunakan
data ini untuk mengetahui informasi tentang proses lainnya.

5. Dalam teks dinyatakan bahwa model Gambar. 2-6 ( a) tidak cocok untuk file server
menggunakan cache memori. Mengapa? Dapatkah setiap proses memiliki cache sendiri?
Jika setiap pekerjaan memiliki 50% I/O waiting, maka akan mengambil 20 menit untuk
menyelesaikan tanpa adanya persaingan. Jika dijalankan secara berurutan, yang kedua
akan selesai 40 menit setelah yang pertama dimulai. Dengan dua pekerjaan, penggunaan
CPU perkiraan adalah 1.052. Dengan demikian masing-masing mendapat 0.375 CPU
menit per menit real time. Untuk mengumpulkan 10 menit waktu CPU, pekerjaan harus
berjalan selama 10/0.375 menit, atau sekitar 26,67 menit. Jadi berjalan berurutan
pekerjaan selesai setelah 40 menit, tetapi berjalan secara paralel mereka selesai setelah
26.67 menit.

6. Dalam Gambar. 2-7 set register terdaftar sebagai per-core bukan seperti biaya per -
proses . Mengapa ? Setelah semua, Mesin hanya memiliki satu set register.
Memungkinkan, untuk menjaga sistem file konsisten. Misalkan sebuah proses client
mengirimkan permintaan ke server proses 1 untuk memperbarui file. Proses ini update
entri cache memori. Tak lama kemudian, proses klien lain mengirimkan permintaan ke
server 2 untuk membaca file tersebut. Sayangnya, jika file tersebut juga cache ada, Server
2, tidak bersalah, akan kembali data usang. Jika proses pertama menulis file melalui disk
caching setelah itu, dan server 2 memeriksa disk pada setiap membaca untuk melihat
apakah salinan cache adalah up-todate, sistem dapat dibuat untuk bekerja, tetapi justru
semua disk yang ini Akses bahwa sistem caching berusaha untuk menghindari.

7. Jika fork proses multithreaded, masalah terjadi jika child mendapatkan salinan dari semua
thread utama. Misalkan salah satu original threads sedang menunggu input keyboard .
Sekarang dua treads menunggu input keyboard, satu di setiap proses . Apakah masalah ini
pernah terjadi pada single-core proses ?Tidak, jika proses single-threaded diblokir pada
keyboard, maka tidak akan mendapatkan fork.

8. Dalam Gambar. 2-10 , server Web multithreaded ditampilkan. Jika satu-satunya cara
untuk membaca dari sebuah file adalah normal blocking system membaca panggilan ,
menurut Anda pengguna tingkat thread atau thread kernel -level yang digunakan untuk
Web server ? Karena, thread akan memblokir ketika telah membaca halaman Web dari
disk. Jika thread level user yang digunakan, tindakan ini akan memblokir seluruh proses,
menghancurkan nilai multithreading. Jadi, adalah penting bahwa thread kernel yang
digunakan untuk memungkinkan beberapa thread untuk memblokir tanpa mempengaruhi
yang lain.

9. Mengapa thread menyediakan CPU dengan memanggil thread_yeld? Setelah semua,


karena ada adalah tidak ada jam periodik mengganggu, hal tersebut mungkin tidak pernah
mendapatkan CPU kembali.? Ya. Jika server sepenuhnya CPU terikat, tidak ada
kebutuhan untuk memiliki beberapa thread. Itu hanya menambah kompleksitas yang tidak
perlu. Sebagai contoh, mempertimbangkan sejumlah bantuan direktori telepon (seperti
555-1212) untuk daerah dengan 1 juta orang. Jika masing-masing (nama, nomor telepon)

Desain dan Praktek Sistem Operasi 7


catatan adalah, katakanlah, 64 karakter, seluruh database mengambil 64 megabyte, dan
dapat dengan mudah disimpan dalam memori server untuk menyediakan pencarian cepat.

10. Dapatkah thread mendahului proses interrupt clock ? Jika demikian, dalam keadaan apa?
Jika tidak, mengapa tidak? Ketika thread dihentikan, ia memiliki nilai-nilai dalam
register. Mereka harus diselamatkan, sama seperti ketika proses dihentikan register harus
diselamatkan. Multiprogramming thread tidak berbeda dengan proses multiprogramming,
sehingga setiap thread perlu mendaftar sendiri menyimpan daerah.

11. Dalam hal membandingkan membaca file menggunakan file server single-threaded dan
Server multithreaded. Dibutuhkan 15 msec untuk mendapatkan permintaan untuk
pekerjaan , pengiriman itu , dan melakukan sisa pengolahan yang diperlukan , dengan
asumsi bahwa data yang diperlukan dalam cache blok . Jika operasi disk dibutuhkan ,
seperti halnya sepertiga dari waktu , tambahan 75 msec diperlukan , selama waktu benang
tidur . Berapa banyak permintaan / detik dapat menangani server jika adalah single
threaded ? Jika multithreaded ? Thread dalam proses bekerja sama. Mereka tidak
bertentangan satu sama lain. Jika menghasilkan diperlukan untuk kebaikan aplikasi, maka
thread akan menghasilkan. Setelah semua, biasanya programmer yang sama yang menulis
kode untuk mereka semua.

12. Dalam teks , kami menggambarkan sebuah server Web multithreaded , menunjukkan
mengapa lebih baik daripada satu core Server dan server mesin finite- state . Apakah ada
keadaan apapun di mana satu – core Server mungkin lebih baik? Thread level user tidak
dapat mendahului oleh clock kecuali seluruh proses ' kuantum telah habis. Kernel thread-
level bisa mendahului individual. Dalam kasus terakhir, jika thread berjalan terlalu lama,
jam akan mengganggu proses saat ini dan dengan demikian thread saat ini. Kernel bebas
untuk memilih yang berbeda thread dari proses yang sama untuk menjalankan berikutnya
jika begitu keinginan.

13. Dalam kasus single-threaded, hits cache yang mengambil 15 msec dan cache misses
mengambil 90 msec. Rata-rata tertimbang adalah 2/3 15  1/3 90. Dengan demikian
permintaan rata-rata membutuhkan waktu 40 msec dan server dapat melakukan 25 per
detik. Untuk server multithreaded, semua menunggu untuk disk yang tumpang tindih,
sehingga setiap request membutuhkan waktu 15 msec, dan server dapat menangani 66 2/3
permintaan per detik. Keuntungan terbesar adalah efisiensi. Tidak ada perangkap untuk
kernel yang diperlukan untuk beralih thread. Kerugian terbesar adalah bahwa jika salah
satu blok thread, seluruh Proses blok.

14. Setiap panggilan ke pthread * membuat, program utama bisa melakukan pthread *
bergabung menunggu sampai thread baru saja dibuat telah keluar sebelum menciptakan
thread berikutnya.

15. Pointer benar-benar diperlukan karena ukuran variabel global tidak diketahui. Hal tersebut
bisa apa saja dari karakter ke array angka floating-point. Jika nilai yang disimpan,
seseorang harus memberikan ukuran untuk menciptakan * global, yang baik-baik saja,
tapi jenis apa yang harus parameter kedua set * bersifat global, dan jenis apa yang harus
nilai membaca * bersifat global

16. Sistem runtime pada titik memblokir atau blokir thread, dan sibuk memanipulasi antrian
penjadwalan. Ini akan menjadi saat yang sangat tidak tepat untuk jam interrupt handler
untuk mulai memeriksa orang-orang antrian untuk melihat apakah sudah waktunya untuk

Desain dan Praktek Sistem Operasi 8


melakukan benang switching, karena mereka mungkin berada dalam keadaan tidak
konsisten. Salah satu solusinya adalah dengan menetapkan bendera ketika sistem runtime
yang dimasukkan. Jam handler akan melihat ini dan menetapkan bendera sendiri,
kemudian kembali. Ketika sistem runtime selesai, itu akan memeriksa bendera jam,
melihat bahwa interupsi jam terjadi, dan sekarang menjalankan handler jam.

17. Bisa saja, tapi tidak efisien. Thread yang ingin melakukan panggilan sistem pertama set
timer alarm, kemudian melakukan panggilan. Jika blok panggilan, timer mengembalikan
kontrol ke paket thread. Tentu saja, sebagian besar waktu panggilan tidak akan
memblokir, dan timer harus dibersihkan. Jadi setiap system call yang bisa menghadang
harus dieksekusi sebagai tiga panggilan sistem. Jika timer pergi sebelum waktunya, semua
jenis masalah dapat berkembang. Ini bukan cara yang menarik untuk membangun thread
paket.

18. Masalah inversi prioritas terjadi ketika proses prioritas rendah adalah di wilayah kritis dan
tiba-tiba sebuah proses prioritas tinggi menjadi siap dan dijadwalkan. Jika menggunakan
sibuk menunggu, itu akan berjalan selamanya. Dengan benang user-level, itu tidak bisa
terjadi bahwa benang-prioritas rendah tiba-tiba mendahului untuk memungkinkan thread
run-prioritas tinggi. Tidak ada preemption. Dengan kernel-level thread masalah ini bisa
timbul.

19. Dengan penjadwalan round-robin kerjanya. Cepat atau lambat L akan berjalan, dan
akhirnya akan meninggalkan daerah kritis. Intinya adalah, dengan penjadwalan prioritas,
L tidak pernah berjalan sama sekali, dengan round robin, itu mendapat irisan waktu yang
normal secara berkala, sehingga memiliki kesempatan untuk meninggalkan daerah kritis.

20. Setiap thread panggilan prosedur sendiri, sehingga harus memiliki tumpukan sendiri untuk
variabel lokal, alamat kembali, dan seterusnya. Hal ini juga berlaku untuk benang user-
level seperti untuk thread kernel-level.

21. Ya. Simulasi komputer dapat Multiprogrammed. Sebagai contoh, sedangkan proses A
sedang berjalan, ia membaca beberapa variabel bersama. Kemudian clock simulasi terjadi
dan proses B berjalan. Hal ini juga membacakan variabel yang sama. Kemudian ia
menambahkan 1 ke variabel. Ketika proses A berjalan, jika ia juga menambahkan satu ke
variabel, kita memiliki kondisi lomba.

22. Ya, masih bekerja, tetapi akan banyak waiting list.

23. Bekerja dengan penjadwalan preemptive. Bahkan, ia dirancang untuk kasus itu. Ketika
penjadwalan nonpreemptive, mungkin gagal. Pertimbangkan kasus di mana gilirannya
awalnya 0 namun proses 1 berjalan pertama. Ini hanya akan loop selamanya dan tidak
pernah melepaskan CPU.
24. Untuk melakukan operasi semaphore, sistem operasi pertama menonaktifkan interupsi.
maka membaca nilai semaphore. Jika melakukan turun dan semaphore adalah sama
dengan nol, menempatkan proses menyerukan daftar proses diblokir terkait dengan
semaphore. Jika melakukan, itu harus memeriksa untuk melihat apakah ada proses yang
diblokir pada semaphore. Jika satu atau lebih proses yang diblokir, salah satunya akan
dihapus dari daftar proses diblokir dan membuat runnable. Ketika semua operasi ini telah
selesai, interupsi dapat diaktifkan lagi.

Desain dan Praktek Sistem Operasi 9


25. Terkait dengan setiap semaphore menghitung dua Semaphore biner, M, digunakan untuk
saling pengecualian, dan B, yang digunakan untuk memblokir. Juga terkait dengan setiap
semaphore menghitung adalah counter yang memegang sejumlah up s dikurangi jumlah
bawah s, dan daftar proses diblokir pada semaphore itu. Untuk mengimplementasikan
bawah, proses pertama mendapatkan akses eksklusif ke Semaphore, counter, dan daftar
dengan melakukan di atas M. Ini kemudian menurunkan meja. Jika itu adalah nol atau
lebih, hanya melakukan up pada M dan keluar. Jika M adalah negatif, proses diletakkan
pada daftar proses diblokir. Kemudian up dilakukan pada M dan bawah dilakukan pada B
untuk memblokir proses. Untuk melaksanakan, pertama M turun ed untuk mendapatkan
mutual exclusion, dan kemudian counter bertambah. Jika lebih dari nol, tidak ada yang
diblokir, sehingga semua yang perlu dilakukan adalah untuk up M. Namun, jika counter
sekarang negatif atau nol, beberapa proses harus dihapus dari daftar. Akhirnya, up
dilakukan pada B dan M dalam urutan itu.

26. Jika program beroperasi secara bertahap dan proses tidak mungkin memasuki fase
berikutnya sampai kedua selesai dengan tahap saat ini, sangat masuk akal untuk
menggunakan penghalang.

27. Dengan thread kernel, thread dapat memblokir pada semaphore dan kernel dapat
menjalankan beberapa thread lain dalam proses yang sama. Akibatnya, tidak ada masalah
dengan menggunakan Semaphore. Dengan thread user-level, ketika salah satu thread di
blok semaphore, kernel berpikir seluruh proses akan diblokir dan tidak menjalankannya
lagi. Akibatnya, proses gagal.

28. Hal ini sangat mahal untuk diterapkan. Setiap kali setiap variabel yang muncul dalam
predikat yang beberapa proses menunggu perubahan, sistem run-time harus mengevaluasi
kembali predikat untuk melihat apakah proses dapat dibuka. Dengan Hoare dan Brinch
Hansen monitor, proses hanya dapat dibangunkan pada sinyal primitif.

29. Karyawan berkomunikasi dengan melewatkan pesan: order, makanan, dan tas dalam kasus
ini. Dalam istilah UNIX, empat proses dihubungkan dengan pipe. Hal ini akan memakan
waktu nT detik.

30. Dalam kasus sederhana dimungkinkan untuk menentukan apakah I/O akan membatasi
dengan melihat kode sumber. Misalnya sebuah program yang membaca semua file input
ke dalam buffer di awal mungkin tidak akan I/O terikat, tapi masalah yang membaca dan
menulis secara bertahap ke sejumlah file yang berbeda (seperti kompilator) cenderung I/O
terikat. Jika sistem operasi menyediakan fasilitas seperti ps perintah UNIX yang dapat
memberitahu Anda jumlah waktu CPU yang digunakan oleh program, Anda dapat
membandingkan ini dengan total waktu untuk menyelesaikan eksekusi program. Hal ini,
tentu saja, yang paling berarti pada sistem di mana Anda berada satu-satunya pengguna.
Untuk beberapa proses dalam pipa, induk yang sama bisa lolos ke informasi sistem
operasi tentang aliran data. Dengan informasi ini OS bisa, misalnya, menentukan proses
bisa memasok output ke proses pemblokiran pada panggilan untuk input.

31. Efisiensi CPU adalah waktu CPU yang berguna dibagi dengan waktu total CPU. Ketika Q
≥ T, siklus dasar untuk proses berjalan untuk T dan menjalani proses saklar untuk S. Jadi
(a) dan (b) memiliki efisiensi T / (S T). Ketika kuantum lebih pendek dari T, masing-
masing berjalan dari T akan membutuhkan T / T switch proses, membuang-buang waktu

Desain dan Praktek Sistem Operasi 10


ST / Q. Efisiensi di sini kemudian yang mengurangi ke Q / (Q S), yang merupakan
jawaban (c). Untuk (d), kami hanya pengganti Q untuk S dan menemukan bahwa efisiensi
adalah 50%. Akhirnya, untuk (e), sebagai Q → 0 efisiensi pergi ke 0.

32. Pekerjaan terpendek pertama adalah cara untuk meminimalkan waktu respon rata-rata.
0 <X ≤ 3: X, 3, 5, 6, 9.
3 <X ≤ 5: 3, X, 5, 6, 9.
5 <X ≤ 6: 3, 5, X, 6, 9.
6 <X ≤ 9: 3, 5, 6, X, 9.
X> 9: 3, 5, 6, 9, X.

33. Pada round robin, selama 10 menit pertama setiap pekerjaan mendapat 1/5 CPU. Pada
akhir 10 menit, C selesai. Selama 8 menit berikutnya, setiap pekerjaan mendapat ¼ CPU,
setelah waktu D selesai. Kemudian masing-masing dari tiga pekerjaan yang tersisa
mendapat 1/3 dari CPU selama 6 menit, sampai selesai B, dan seterusnya. Finishing kali
untuk lima pekerjaan adalah 10, 18, 24, 28, dan 30, untuk rata-rata 22 menit. Untuk
penjadwalan prioritas, B dijalankan terlebih dahulu. Setelah 6 menit selesai. Pekerjaan lain
berakhir pada 14, 24, 26, dan 30, untuk rata-rata 18,8 menit. Jika pekerjaan dijalankan
dalam urutan A sampai E, mereka selesai pada 10, 16, 18, 22, dan 30, untuk rata-rata 19,2
menit. Akhirnya, hasil pekerjaan terpendek pertama menyelesaikan kali 2, 6, 12, 20, dan
30, untuk rata-rata 14 menit.

34. Pertama kali mendapat 1 kuantum. Pada berhasil berjalan mendapat 2, 4, 8, dan 15,
sehingga harus ditukarkan dalam 5 kali.

35. Sebuah cek bisa dibuat untuk melihat apakah program itu mengharapkan masukan dan
melakukan sesuatu dengan hal tersebut. Sebuah program yang tidak mengharapkan input
dan tidak memproses itu tidak akan mendapatkan dorongan prioritas khusus.
36. Urutan prediksi adalah 40, 30, 35, dan sekarang 25.

37. Bagian dari CPU yang digunakan adalah 35/50 + 20/100 + 10/200 + x / 250. Untuk
menjadi schedulable, ini harus kurang dari 1. Jadi x harus kurang dari 12,5 msec.

38. Penjadwalan dua tingkat yang dibutuhkan ketika memori terlalu kecil untuk memegang
semua proses siap. Beberapa set mereka dimasukkan ke dalam memori, dan pilihan yang
dibuat dari yang ditetapkan. Dari waktu ke waktu, serangkaian proses di-core disesuaikan.
Algoritma ini mudah diimplementasikan dan cukup efisien, tentu jauh lebih baik daripada,
katakanlah, round robin tanpa memperhatikan apakah suatu proses berada di memori atau
tidak.

39. Setiap panggilan suara berjalan 200 kali/detik dan menggunakan sampai 1 msec per
meledak, sehingga setiap panggilan suara membutuhkan 200 msec per detik atau 400
msec untuk mereka berdua. Video berjalan 25 kali per detik dan menggunakan sampai 20
msec setiap kali, dengan total 500 msec per detik. Bersama-sama mereka mengkonsumsi
900 msec per detik, sehingga ada adalah waktu yang tersisa dan sistem ini schedulable.

40. Kernel dapat menjadwalkan proses dengan cara apapun yang diinginkannya, tetapi dalam
setiap proses berjalan benang ketat dalam urutan prioritas. Dengan membiarkan proses
pengguna mengatur prioritas thread sendiri, pengguna mengontrol kebijakan tapi kernel
menangani mekanisme.

Desain dan Praktek Sistem Operasi 11


41. Perubahan berarti bahwa setelah seorang filsuf berhenti makan, tak satu pun dari
tetangganya bisa dipilih berikutnya. Bahkan, mereka tidak akan pernah dipilih. Misalkan
filsuf bahwa 2 selesai makan. Dia akan menjalankan tes bagi para filsuf 1 dan 3, dan tidak
akan dimulai, meskipun kedua lapar dan kedua garpu yang tersedia. Demikian pula, jika
filsuf 4 selesai makan, filsuf 3 tidak akan dimulai. Tidak ada yang akan mulai dia.

42. Jika seorang filsuf ter-blok, tetangga nantinya bisa melihat bahwa dia lapar dengan
memeriksa negara, dalam tes, sehingga ia dapat dibangunkan ketika garpu yang tersedia.

43. Variasi 1: pembaca memiliki prioritas. Tidak ada penulis dapat dimulai ketika seorang
pembaca aktif. Ketika pembaca baru muncul, hal itu mungkin mulai segera kecuali
penulis yang sedang aktif. Ketika penulis selesai, jika pembaca sedang menunggu, mereka
semua dimulai, terlepas dari keberadaan penulis menunggu. Variasi 2: Penulis memiliki
prioritas. Tidak ada pembaca mungkin dimulai ketika penulis sedang menunggu. Ketika
proses selesai aktif terakhir, penulis dimulai, jika ada satu, jika tidak, semua pembaca (jika
ada) dimulai. Variasi 3: versi simetris. Ketika pembaca aktif, pembaca baru dapat segera
dimulai. Ketika penulis selesai, seorang penulis baru memiliki prioritas, jika ada yang
menunggu. Dengan kata lain, sekali kita sudah mulai membaca, kita terus membaca
sampai tidak ada pembaca tersisa. Demikian pula, begitu kita sudah mulai menulis, semua
penulis yang tertunda diizinkan untuk menjalankan.

44. Sebuah shell script;


if [! -F nomor]; kemudian echo 0> angka; fi
count = 0
sementara (uji $ count! = 200)
melakukan
count = 'expr $ count + 1'
n = 'ekor -1 nomor'
expr $ n + 1 >>

Jalankan script dua kali secara bersamaan, dengan memulai sekali di latar belakang
(Menggunakan &) dan kembali di foreground. Kemudian memeriksa nomor berkas. Ini
akan mungkin mulai keluar tampak seperti daftar tertib angka, tetapi pada beberapa titik
itu akan kehilangan ketertiban nya, karena kondisi lomba dibuat dengan menjalankan dua
salinan dari naskah. Perlombaan dapat dihindari dengan memiliki setiap salinan uji
naskah dan mengatur kunci pada file sebelum memasuki area kritis, dan unlocking
setelah meninggalkan daerah kritis. Hal ini dapat dilakukan seperti ini:
jika ln nomor numbers.lock
kemudian
n = 'ekor -1 nomor'
expr $ n + 1 >> nomor
numbers.lock rm fi

Versi ini hanya akan melewatkan giliran ketika file tersebut tidak dapat diakses, solusi
varian bisa menempatkan proses untuk tidur, lakukan sibuk menunggu, atau hanya
menghitung loop dalam yang operasi ini berhasil.

Desain dan Praktek Sistem Operasi 12

Anda mungkin juga menyukai