Operasi pada Sistem Operasi Avida Endriani 2103141003 | Reza Gusty Erlangga 2103141020 | D3 TEKNIK INFORMATIKA A Definisi dan Bagian dari Sistem Operasi Apa itu sistem operasi? Sistem operasi adalah software sistem yang bertugas untuk melakukan kontrol, mengelola hardware, serta operasi dasar sistem, termasuk menjalankan software aplikasi. Apa sajakah bagian-bagian dari sistem operasi ? 1. Mekanisme boot: meletakkan kernel ke dalam memori. 2. Kernel: inti sebuah sistem operasi. 3. Command interpreter atau shell: bagian yang bertugas membaca input dari pengguna. 4. Pustaka (library): menyediakan kumpulan fungsi dasar dan standar yang dapat dipanggil oleh aplikasi lain. 5. Driver: komponen untuk berinteraksi antara hardware eksternal sekaligus mengontrolnya. Fungsi Sistem Operasi 1. Mengelola sumber daya terkait dengan pengendalian perangkat lunak sistem/aplikasi yang sedang dijalankan. 2. Mempersiapkan agar program aplikasi dapat berinteraksi dengan perangkat keras secara konsisten dan stabil tanpa harus mengetahui secara detil mengenai perangkat keras. 3. Melakukan pengelolaan proses mencakup penyiapan, penjadwalan, dan pemantauan proses program yang sedang dijalankan. 4. Melakukan pengelolaan data pengendalian terhadap data masukan/keluaran. Pembagian Sistem Operasi Berdasarkan jenis komputer yang dikendalikan dan bentuk aplikasi yang didukung, SO dibagi menjadi: 1. RTOS (Real Time Operating System) mengendalikan perangkat keras untuk tujuan spesifik 2. Single User, Single Task memudahkan menangani pengoperasian komputer sehingga pengguna dapat menjalankan satu pekerjaan pada saat yang bersamaan 3. Single User, Multitasking Memungkinkan pengguna dapat menjalankan beberapa aplikasi terpisah secara bersamaan 4. Multi-User memungkinkan lebih dari satu pengguna bersama-sama menggunakan sumber daya komputer secara simultan Penanganan Sistem Operasi a. Multi programming metode yang memungkinkan dua buah program/lebih dijalankan secara serentak pada sebuah komputer dan berbagai sumber daya dalam waktu yang berlainan. b. Time Sharing Metode yang dipakai dalam sistem operasi yang memungkinkan sejumlah pemakai dapat berinteraksi dengan proses yang dibuatnya secara bergantian dengan jumlah waktu yang sama. c. Penyimpanan virtual Metode yang menangani sejumlah program dengan membagi program-program tersebut ke dalam bagian yang kecil dengan ukuran sama. d. Multitasking Metode yang memungkinkan seorang pemakai menjalankan sejumlah program dalam waktu yang sama. e. Multiprocessing Metode dengan kemampuan sistem operasi yang menjalankan dua atau lebih intruksi secara serentak dengan menggunakan sejumlah CPU dalam sebuah komputer. Manajemen File Manajemen file juga dapat diartikan sebagai pengorganisasian file data dan file program. Cut/move, memindahkan file dari suatu direktori ke direktori lain. Contoh: penggunaan command $mv <nama file> pada linux. Copy, menyalin file. Contoh: $cp <nama file> Create file/directory, membuat file baru/direktori baru. Contoh: create file: $touch <nama file baru>. Create directory: $rmdir <nama direktori baru> Delete file/directory, menghapus file/direktori. Contoh: delete file: $rm <nama file> . Delete directory: $rmdir <nama direktori> Manajemen Proses Manajemen proses suatu sistem operasi (khususnya Linux) terdiri dari: Foreground, proses yang sedang berjalan ditampilkan saat itu juga. Contoh: penggunaan command $fg Background, proses yang berjalan di balik layar. Contoh: $bg Kill process, menghentikan proses. Contoh: $kill %<nomor proses> / $kill <nomor PID proses> / $killal -<option> Manajemen I/O Penanganan I/O (1) Dalam berkomunikasi dengan device controller, terdapat dua cara sistem operasi memberikan perintah dan data, yaitu: Instruksi I/O. Merupakan instruksi CPU yang khusus menangani transfer byte atau word ke sebuah port I/O. Cara kerjanya, instruksi tersebut memicu line bus untuk memilih perangkat yang dituju kemudian mentransfer bit-bit dari atau ke register perangkat. Penanganan I/O (2) I/O Memory-mapped Register-register pengendali perangkat dipetakan keruang alamat prosesor. Operasi membaca atau pun menulis di alamat tersebut di interpretasikan sebagai perintah untuk perangkat I/O. Penanganan I/O (3) Sebagai contoh, sebuah operasi write di gunakan untuk mengirim data keperangkat I/O dimana data tersebut diartikan sebagai sebuah perintah. Saat CPU menempatkan alamat dan data tersebut di memori bus, memori sistem mengacuhkan operasi tersebut karena alamat nya mengindikasikan jatah ruang memori untuk I/O. Namun, pengendali perangkat melihat operasi tersebut, mengambil data, kemudian men transmisi ke perangkat sebagai sebuah perintah. Penjadwalan CPU Algoritma penjadwalan CPU yang berbeda akan memiliki perbedaan properti. Sehingga untuk memilih algoritma ini harus dipertimbangkan dulu properti-properti algoritma tersebut. Ada beberapa kriteria yang digunakan untuk melakukan pembandingan algoritma penjadwalan CPU, antara lain: CPU utilization. Diharapkan agar CPU selalu dalam keadaan sibuk. Utilitas CPU dinyatakan dalam bentuk prosen yaitu 0-100%. Namun dalam kenyataannya hanya berkisar antara 40-90%. Throughput. Adalah banyaknya proses yang selesai dikerjakan dalam satu satuan waktu. Turnaround time. Banyaknya waktu yang diperlukan untuk mengeksekusi proses, dari mulai menunggu untuk meminta tempat di memori utama, menunggu di ready queue, eksekusi oleh CPU, dan mengerjakan I/O. Waiting time. Waktu yang diperlukan oleh suatu proses untuk menunggu di ready queue. Waiting time ini tidak mempengaruhi eksekusi proses dan penggunaan I/O. Response time. Waktu yang dibutuhkan oleh suatu proses dari minta dilayani hingga ada respon pertama yang menanggapi permintaan tersebut. Fairness. Meyakinkan bahwa tiap-tiap proses akan mendapatkan pembagian waktu penggunaan CPU secara terbuka (fair). Algoritma Penjadwalan CPU Penjadwalan CPU menyangkut penentuan proses-proses yang ada dalam ready queue yang akan dialokasikan pada CPU. Terdapat beberapa algoritma penjadwalan CPU seperti sub bab di bawah ini. First-Come First-Served Scheduling (FCFS) Proses yang pertama kali meminta jatah waktu untuk menggunakan CPU akan dilayani terlebih dahulu. Pada skema ini, proses yang meminta CPU pertama kali akan dialokasikan ke CPU pertama kali. Shortest Job First Scheduler (SJF) Pada penjadwalan SJF, proses yang memiliki CPU burst paling kecil dilayani terlebih dahulu. Terdapat dua skema: Non preemptive, bila CPU diberikan pada proses, maka tidak bisa ditunda sampai CPU burst selesai. Preemptive, jika proses baru datang dengan panjang CPU burst lebih pendek dari sisa waktu proses yang saat itu sedang dieksekusi, proses ini ditunda dan diganti dengan proses baru. Skema ini disebut dengan ShortestRemainingTime-First (SRTF). SJF adalah algoritma penjadwalan yang optimal dengan rata-rata waktu tunggu yang minimal. Misalnya terdapat empat proses dengan panjang CPU burst dalam milidetik. Algoritma Penjadwalan CPU Priority Scheduling Algoritma SJF adalah suatu kasus khusus dari penjadwalan berprioritas. Tiaptiap proses dilengkapi dengan nomor prioritas (integer). CPU dialokasikan untuk proses yang memiliki prioritas paling tinggi (nilai integer terkecil biasanya merupakan prioritas terbesar). Jika beberapa proses memilikiprioritas yang sama, maka akan digunakan algoritma FCFS. Penjadwalan berprioritas terdiri dari dua skema yaitu non preemptive dan preemptive. Jika ada proses P1 yang datang pada saat P0 sedang berjalan, maka akan dilihat prioritas P1.Seandainya prioritas P1lebih besar dibanding dengan prioritas P0, maka pada non-preemptive, algoritma tetap akan menyelesaikan P0 sampai habis CPU burst-nya, dan meletakkan P1pada posisi head queue. Sedangkan pada preemptive, P0 akan dihentikan dulu, dan CPU ganti dialokasikan untuk P1. Algoritma Penjadwalan CPU Round-Robin Scheduling Konsep dasar dari algoritma ini adalah dengan menggunakan time-sharing. Pada dasarnya algoritma ini sama dengan FCFS, hanya saja bersifat preemptive. Setiap proses mendapatkan waktu CPU yang disebut dengan waktu quantum (quantum time) untuk membatasi waktu proses, biasanya 1-100 milidetik. Setelah waktu habis, proses ditunda dan ditambahkan pada ready queue. Jika suatu proses memiliki CPU burst lebih kecil dibandingkan dengan waktu quantum, maka proses tersebut akan melepaskan CPU jika telah selesai bekerja, sehingga CPU dapat segera digunakan oleh proses selanjutnya. Sebaliknya, jika suatu proses memiliki CPU burst yang lebih besar dibandingkan dengan waktu quantum, maka proses tersebut akan dihentikan sementara jika sudah mencapai waktu quantum, dan selanjutnya mengantri kembali pada posisi ekor dari ready queue, CPU kemudian menjalankan proses berikutnya. Jika terdapat nproses pada ready queue dan waktu quantum q, maka setiap proses mendapatkan 1/ndari waktu CPU paling banyak qunit waktu pada sekali penjadwalan CPU. Tidak ada proses yang menunggu lebih dari (n-1)qunit waktu. Performansi algoritma round robin dapat dijelaskan sebagai berikut, jika q besar, maka yang digunakan adalah algoritma FIFO, tetapi jika q kecil maka sering terjadi context switch.