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