Tugas Off

advertisement
TUGAS OFC 1
NIM
NAMA
Kelas
: 1100033675
: Deny Yovianto
: 06PAW
1. Jelaskan cara kerja interrupt
Interupsi adalah upaya untuk mengalihkan perhatian keyboard dari program yg
sedang dikerjakan untuk memberikan pelayanan khusus terlebih dahulu pada yang
menginterupsinya.
Contoh : Keyboard menginterupsi kerja program karena ada tuts keyboard yg ditekan.
Data yg dihasilkan oleh tuts tersebut harus diambil sesegera mungkin oleh program.
Misalkan pada Ms.Word, ketika kita ingin menulis maka kita akan menginterupsi hurufhuruf yang ada di keyboard untuk dicetak ke Ms.Word.
2. Jelaskan 3 cara implementasi thread.
Kernel Linux mulai menggunakan thread pada versi 2.2. Thread dalam Linux dianggap
sebagai task , seperti halnya proses. Kebanyakan sistem operasi yang
mengimplementasikan multithreading menjalankan sebuah thread terpisah dari proses.
Linus Torvalds mendefinisikan bahwa sebuah thread adalah Context of Execution (COE),
yang berarti bahwa hanya ada sebuah Process Control Block (PCB) dan sebuah penjadwal
yang diperlukan. Linux tidak mendukung multithreading , struktur data yang terpisah, atau
pun rutin kernel.
Linux menyediakan dua macam system call , yaitu fork dan clone. fork memiliki fungsi
untuk menduplikasi proses dimana proses anak yang dihasilkan bersifat independent.
clone memiliki sifat yang mirip dengan fork yaitu sama-sama membuat duplikat dari
proses induk. Namun demikian, selain membuat proses baru yang terpisah dari proses
induk, clone juga mengizinkan terjadinya proses berbagi ruang alamat antara proses anak
dengan proses induk, sehingga proses anak yang dihasilkan akan sama persis dengan
proses induknya.
Setiap proses memiliki struktur data yang unik. Namun demikian, proses-proses di Linux
hanya menyimpan pointer-pointer ke struktur data lainnya dimana instruksi disimpan,
sehingga tidak harus menyimpan instruksi ke setiap struktur data yang ada. Hal ini
menyebabkan context switch antar proses di Linux menjadi lebih cepat.
Ketika fork dieksekusi, sebuah proses baru dibuat bersamaan dengan proses penyalinan
struktur data dari proses induk. Ketika clone dieksekusi, sebuah proses baru juga dibuat,
namun proses tersebut tidak menyalin struktur data dari proses induknya. Proses baru
tersebut hanya menyimpan pointer ke struktur data proses induk. Oleh karena itu, proses
anak dapat berbagi ruang alamat dan sumber daya dengan proses induknya. Satu set flag
digunakan untuk mengindikasikan seberapa banyak kedua proses tersebut dapat berbagi.
Jika tidak ada flag yang ditandai, maka tidak ada sharing, sehingga clone berlaku sebagai
fork. Jika kelima flag ditandai, maka proses induk harus berbagi semuanya dengan proses
anak.
Tabel 3-1. Tabel Flag dan Fungsinya
Flag
CLONE_VM
Keterangan
Berbagi data dan Stack
CLONE_FS
Berbagi informasi sistem berkas
CLONE_FILES
Berbagi berkas
CLONE_SIGHANDBerbagi sinyal
CLONE_PID
Berbagi PID dengan proses induk
3. Jelaskan perbedaan soft real time dan hard real time operating system
Hard real time time menjamin bahwa tugas-tugas penting lengkap pada waktunya.
Tujuan ini mensyaratkan bahwa semua penundaan dalam sistem dapat dibatasi dari
perolehan kembali data yang disimpan untuk waktu yang diperlukan sistem operasi untuk
menyelesaikan setiap permintaan yang terbuat dari itu. Sebuah sistem soft real time di
mana kritis tugas real-time mendapat prioritas di atas tugas-tugas lain dan
mempertahankan bahwa prioritas sampai selesai. Seperti pada sistem hard real time
penundaan kernel harus dibatasi.
Sebuah sistem dikatakan real-time jika total kebenaran dari suatu operasi tidak hanya
bergantung pada kebenaran yang logis, tetapi juga pada waktu di mana itu dilakukan.
Konsepsi klasik adalah bahwa dalam sebuah hard real-time atau langsung sistem realtime, penyelesaian operasi setelah tenggat waktu dianggap tidak berguna - pada akhirnya,
hal ini dapat menyebabkan kegagalan kritis sistem lengkap. Soft sistem real-time di sisi
lain akan mentoleransi keterlambatan tersebut, dan dapat merespons dengan penurunan
kualitas layanan (misalnya, dengan menghilangkan frame sementara menampilkan
video).
Hard real-time sistem yang digunakan ketika itu adalah suatu keharusan bahwa suatu
peristiwa yang bereaksi terhadap dalam tenggat waktu yang ketat. Seperti jaminan yang
kuat diperlukan sistem-sistem yang tidak bereaksi dalam interval waktu tertentu akan
menyebabkan kerugian besar dalam beberapa cara, terutama merusak lingkungan fisik
atau mengancam kehidupan manusia (walaupun definisi yang ketat yang hilang hanyalah
merupakan batas waktu kegagalan sistem ). Sebagai contoh, sebuah sistem kontrol mesin
mobil sulit adalah sebuah sistem waktu nyata karena sinyal yang tertunda dapat
menyebabkan kegagalan atau kerusakan mesin. Contoh lain dari hard real-time embedded
system meliputi sistem medis seperti alat pacu jantung dan pengontrol proses industri.
Hard real-time sistem biasanya ditemukan berinteraksi pada tingkat rendah dengan
hardware fisik, di embedded system. Awal sistem permainan video seperti Atari 2600 dan
vektor grafis telah Cinematronics real-time sulit persyaratan karena sifat dari hardware
grafis dan waktu.
Dalam konteks sistem multitasking kebijakan penjadwalan prioritas biasanya didorong
(pre-emptive schedulers). Algoritma penjadwalan lain termasuk Tenggat Terlama
Pertama, yang, mengabaikan konteks overhead peralihan, adalah sistem yang cukup
untuk beban kurang dari 100% [1]. Overlay baru sistem penjadwalan, seperti Pemisahan
Adaptive Penjadwal membantu dalam mengelola sistem yang besar dengan campuran
hard real-time dan non real-time aplikasi.
Soft real-time sistem biasanya digunakan di mana ada beberapa masalah akses bersamaan
dan kebutuhan untuk menyimpan sejumlah sistem terhubung up to date dengan
perubahan situasi misalnya perangkat lunak yang memelihara dan memperbarui rencana
penerbangan pesawat komersial. Rencana penerbangan harus selalu cukup sekarang
tetapi dapat beroperasi pada latency detik. Live sistem audio-video juga biasanya lunak
real-time; pelanggaran hasil kendala dalam kualitas rusak, tetapi sistem dapat terus
beroperasi.
4. Jelaskan yang dimasksud dengan process state.
Dalam sebuah sistem komputer multitasking, proses dapat menempati berbagai state.
State-state yang berbeda ini mungkin tidak benar-benar diakui sebagai demikian oleh
kernel sistem operasi, namun mereka adalah abstraksi yang berguna untuk memahami
proses.
Proses primer state
Proses khas berikut state-state yang mungkin pada sistem komputer dari semua jenis. Di
sebagian besar state bagian ini, proses adalah "disimpan" pada memori utama.
5.
Apa yang dimasksud dengan system call? Berikan minimal 2 contoh system call
dalam Process Management
Komputer digunakan untuk melakukan suatu proses yang dikehendaki user. Oleh karena
itu harus ada suatu bentuk komunikasi antara user dan hardware. Komunikasi itu terjadi
dalam bentuk system calls. SO melalui shell-nya akan menangkap perintah dari user yang
kemudian akan dikomunikasikan melalui system calls. Disinilah peran SO sebagai
jembatan komunikasi antara user dan hardware itu terjadi. System calls itu sendiri
umumnya ditulis dalam bahasa C dan C++.
Mengenai shell, shell itu sendiri secara umum adalah layer yang berfungsi sebagai
interface antara user dan inti dalam sistem operasi (kernel). Melalui shell, user dapat
memberi perintah-perintah yang akan dikirim ke sistem operasi, sehingga shell ini
merupakan layer yang menerima interaksi dari user secara langsung. Shell dalam SO
secara umum dibagi menjadi 2, Command Line(CLI) dan Graphical(GUI). Jadi dengan
kata lain, system calls berperan sebagai interface dalam layanan-layanan yang disediakan
oleh sistem operasi.
Untuk lebih jelasnya lihat gambar berikut.
Contoh 1: sytem calls di dalam program yang membaca data dari satu file lalu mengcopy-nya ke file lain.
Contoh 2: Lapisan tipuan dalam pelaksanaan FreeBSD membaca system call
6. Apa yang dimaksud dengan semaphore dan operasi apa yang dapat dilakukan
terhadap semaphore?
Dalam kehidupan nyata, semaphore adalah sistem sinyal yang digunakan untuk
berkomunikasi secara visual. Dalam software, semaphore adalah sebuah variabel bertipe
integer yang selain saat inisialisasi, hanya dapat diakses melalui dua operasi standar,
yaitu increment dan decrement. Semaphore digunakan untuk menyelesaikan masalah
sinkronisasi secara umum. Berdasarkan jenisnya, semaphore hanya bisa memiliki nilai 1
atau 0, atau lebih dari sama dengan 0. Konsep semaphore pertama kali diajukan idenya
oleh Edsger Dijkstra pada tahun 1967.
Operasi standar pada semaphore (dalam bahasa pemrograman C):
void kunci(int sem_value) {
while(sem_value <= 0);
sem_value--;
}
void buka(int sem_value) {
sem_value++;
}
Nama asli dari operasi tersebut sebenarnya adalah Proberen (test) dan Verhogen
(increment). Namun, sebutan untuk 2 method ini sangat beragam, antara lain sering
dikenal dengan nama : release dan acquire, P dan V, serta kunci dan buka. Dalam buku
ini akan digunakan istilah buka dan kunci. Fungsi wait dipanggil ketika thread akan
memasuki critical section-nya atau ketika thread akan memakai resource yang tersedia.
Jika sem_value kurang dari sama dengan 0, thread tersebut harus menunggu sampai
thread lain memanggil fungsi buka. Fungsi buka dipanggil ketika thread meningggalkan
critical section-nya atau ketika melepaskan resource yang telah digunakannya. Tentu saja
kedua operasi tersebut harus bersifat atomik karena sem_value dapat diakses oleh
beberapa proses (shared resource).
Semaphore memiliki dua jenis, yaitu:
1. Binary semaphore . Semaphore ini hanya memiliki nilai 1 atau 0. Sering juga
disebut sebagai semaphore primitif
2. Counting semaphore . Semaphore ini memiliki nilai 0, 1, serta integer lainnya.
Banyak sistem operasi yang tidak secara langsung mengimplementasikan
semaphore ini, tetapi dengan memanfaatkan binary semaphore
7. Apa yang dimaksud dengan “mutex”?
Mutex adalah sebuah program obyek yang memungkinkan program beberapa thread
untuk berbagi sumber daya yang sama, seperti akses file, tapi tidak secara simultan.
Ketika sebuah program sedang memulai sebuah mutex woth diciptakan nama yang unik.
Setelah tahap ini, setiap thread yang membutuhkan sumber daya harus mengunci mutex
dari thread lain ketika sedang menggunakan sumber daya. diatur dengan mutex untuk
membuka ketika data tidak lagi diperlukan atau rutin selesai.
8.
Jelaskan cara implementasi inter process communication menggunakan “message
passing”.
Inter-Process Communication (IPC) atau Komunikasi antar proses adalah cara atau
mekanisme pertukaran data antara satu proses dengan proses lainnya, baik itu proses
yang berada di dalam komputer yang sama, atau komputer jarak jauh yang terhubung
melalui jaringan. IPC terdiri atas protokol yang menjamin sebuah respons dari sebuah
permintaan. Contoh dari IPC adalah Socket dalam sistem operasi keluarga UNIX,
message dalam sistem operasi RISC OS, port dalam sistem operasi Mach, Named Pipe
dalam OS/2, Dynamic Data Exchange (DDE) dalam sistem operasi Windows, SPX dalam
sistem operasi Novell, IAC dalam sistem operasi Apple Macintosh (khususnya
AppleEvents) dan beberapa komponen perangkat lunak seperti CORBA atau Component
Object Model (COM).
Meskipun IPC secara otomatis dilakukan oleh program, sebuah fungsi yang sama juga
dapat dilakukan secara interaktif ketika pengguna melakukan operasi copy-cut-paste dari
satu proses ke proses lainnya dengan menggunakan clipboard.
Beberapa jenis IPC yang disediakan oleh sistem operasi dapat disatukan dalam tabel
berikut
Metode
Sistem Operasi/Lingkungan
File
Semua sistem operasi mendukung metode ini
Signal
Semua sistem operasi
Pipe
Semua sistem operasi yang mendukung standar POSIX
Named pipe Semua sistem operasi yang mendukung standar POSIX
Shared
memory
Semua sistem operasi yang mendukung standar POSIX
Message
passing
Digunakan dalam paradigma Message Passing Interface (MPI), Java RMI, CORBA, atau
lainnya
Memory
map
Semua sistem operasi yang mendukung standar POSIX; Mungkin dapat menyebabkan kondisi
kompetisi (race condition) jika sebuah berkas sementara (temporary file) digunakan.
Message
queue
Kebanyakan sistem operasi
Mailbox
Beberapa sistem operasi
Mailslot
Windows NT, IBM OS/2
9.
Jelaskan yang dimaksud dengan:
a. Pipe
b. Rendezvous
c. Mailbox
a. Pipe (|) merupakan fasilitas yang menghubungkan output suatu perintah menjadi
input bagi perintah yang lain. Pada penjelasan utilitas cat dan touch telah
dijelaskan tentang pengalihan arah keluaran (output redirection). Seperti yang kita
ketahui bersama bahwa pengalihan arah atau lebih dikenal dengan nama
redirection, merupakan fasilitas shell yang memungkinkan hasil suatu perintah
yang secara defaultnya ke layar dapat dipindahkan ke sebuah file yang ada dalam
media penyimpanan atau masukan yang dari keyboard secara default dapat
dialihkan ke suatu file.
b. Rendezvous adalah pertemuan protokol untuk dapat menyambung ke perangkat
lain.
c. Mailbox mengikuti model tarik.yaitu tugas si pengirim dapat mengirim pesan ke
mailbox dan penerima tidak harus segera.Dia harus memeriksa apakah ada pesan
di mailbox untuk mengkonsumsi.
Perbedaannya tergantung pada pelaksanaan OS.Beberapa OS tidak membuat
perbedaan antara pipa dan antrian; beberapa melakukannya satu jalan dan
beberapa cara lain.Berikut adalah beberapa dari mereka
-Antrian dapat dibagi antara beberapa tugas yaitu banyak tugas dapat
mengkonsumsi dari antrian sementara pipa dapat berbagi antara dua tugas saja;
satu produsen dan konsumen kedua
-Pesan antrian sama seperti pipa dengan satu-satunya perbedaan yang berorientasi
byte pipa sementara antrian dapat dari berbagai ukuran.
10.
Jelaskan yang dimaskud dengan ”race condition”.
Race conditions
Sebuah kondisi ras terjadi ketika dua thread mengakses variabel bersama pada saat yang
sama. Thread pertama membaca variabel, dan yang kedua yang sama thread membaca
nilai dari variabel. Kemudian, simpul pertama dan kedua thread melakukan operasi
mereka pada nilai, dan mereka berlomba untuk melihat mana thread dapat menulis nilai
terakhir ke variabel bersama. Nilai thread yang menulis nilai terakhir yang diawetkan,
karena thread menulis di atas nilai yang thread sebelumnya menulis.
Rincian dan Contoh
Setiap thread dialokasikan periode yang sudah ditetapkan waktu untuk mengeksekusi
pada sebuah prosesor. Bila waktu yang dialokasikan untuk thread habis, maka konteks
thread disimpan sampai giliran pada prosesor, dan prosesor mulai eksekusi thread
berikutnya.
Bagaimana satu baris perintah menyebabkan kondisi balapan? Memeriksa contoh berikut
untuk melihat bagaimana kondisi perlombaan terjadi. Ada dua thread, dan keduanya
memperbarui variabel bersama yang disebut total
Download