Tugas SO Archlinux
April 3, 2019 | Author: Fendi Koding Conami | Category: N/A
Short Description
Download Tugas SO Archlinux...
Description
TUGAS SISTEM OPERASI
ARCHLINUX
Disusun Oleh: FENDI TRI CAHYONO 168/Pra-MIK/32/2013
Yogyakarta 2013
Arch linux adalah sistem operasi berbasis Linux untuk i686 dan komputer x86-64. Hal ini sebagian besar terdiri dari perangkat lunak bebas dan sumber terbuka, dan mendukung keterlibatan masyarakat.Pendekatan desain dari tim pengembangan berfokus pada kesederhanaan dari sudut pandang pengembang dan bukan sudut pandang pengguna, keanggunan, kode, dan minimalisme. Package manager yang ditulis khusus untuk Arch Linux, pacman, digunakan untuk menginstal, menghapus dan memperbarui paket perangkat lunak. Arch Linux menggunakan model rolling release, sehingga update sistem biasa adalah semua yang diperlukan untuk memperoleh perangkat lunak Arch terbaru. Semua paket dikelola menggunakan Pacman. Pacman menangani paket instalasi, upgrade, penghapusan dan penurunan peringkat, dan fitur resolusi dependensi otomatis. Paket-paket untuk Arch Linux diperoleh dari Arch Linux paket pohon dan dikompilasi untuk arsitektur i686 baik atau x86-64. Arch Linux didasarkan pada paket biner dalam format tar.gz dan tar.xz.
1. Kernel
Untuk pengaksesan ke hardwarenya, sistem operasi ini menggunakan kernel linux. Kernel merupakan inti dari sistem Linux, yang digunakan untuk mengontrol hardware dan membentuk berbagai fungsi peretas rendah. Fungsi-fungsi yang dilaksanakan oleh kernel, antara lain system call dan jam system, manajemen dan penjadwalan proses, manajemen memori, melakukan kegiatan akuntasi sistem, melakukan penanganan kesalahan dan interupsi (interrupt). Selain itu hal-hal lain yang terkait dengan fungsi kernel adalah digunakan untuk mendukung protokol standar jaringan TCP/IP dan beberapa protokol jaringan lain serta digunakan dalam sistem berkas. Hal lain yang menjadi tanggung jawab kernel yaitu digunakan untuk mendukung sejumlah perangkat keras ekstra. Contoh dukungannya
adalah floopy-disk, CD-ROM, sound card, berbagai mouse, dan keyboar international. Selain itu juga mendukung modul kernel yang dynamically loadable dan unloadable.
Gambar 1. Struktur Linux
Bagian-bagian lain dari Linux, seperti aplikasi dan shell, memanggil kernel untuk membentuk layanan kepadanya. Linux menyediakan antarmuka antara bagian luar kernel dan kernel sendiri, berupa system call.
Setiap pemanggilan sistem menginstruksikan kernel untuk membentuk layanan tertentu sesuai dengan permintaan program yang memanggilnya. Sebagai contoh jika suatu program yang hendak membaca data dari terminal, program perlu menyampaikan permintaan ke kernel. Kernel akan melakukan tindakan yang sesuai dengan permintaan program, kemudian menyampaikan hasilnya ke program.
2. System Call
Gambar 2 mengilustrasikan operasi pemanggilan sistem (system call). Bagian‐ bagian lain dari Linux, seperti aplikasi dan shell, memanggil kernell untuk membentuk layanan kepadanya. Linux menyediakan antarmuka antara bagian luar kernell dan kernell sendiri, berupa system call. Setiap pemanggilan sistem menginstruksikan kernell untuk membentuk layanan tertentu sesuai permintaan program yang memanggilnya. Sebagai contoh kalau suatu program hendak membaca data dari
terminal, program perlu menyampaikan permintaan ke kernell. Kernell akan melakukan tindakan yang sesuai dengan permintaan program, kemudian menyampaikan hasilnya ke program.
Gambar 2. Proses System Call
3. Manajemen Dan Penjadwalan Proses
Kapanpun CPU menjadi idle, sistem operasi harus memilih salah satu proses untuk masuk kedalam antrian ready (siap) dieksekusi. Penmilihan tersebut dilakukan oleh penjadwal short term. Penjadwalan memilih dari sekian proses yang ada di memory yang sudah siap dieksekusi, dan mengalokasikan CPU untuk mengeksekusinya. Gambar 3 merupakan siklus bagaimana sebuah program dieksekusi.
Gambar 3. Proses
Linux memiliki dua algoritma penjadwalan proses yang terpisah. 1. Time-sharing, , dimana Linux menggunakan algoritma ini berdasarkan credit dan prioritas.
Sistem credit ini secara otomatis memprioritaskan interaksi atau proses I/O bound . 2. Algoritma real-time,dimana untuk setiap eksekusinya, linux memiliki skala prioritas. Dalam
penerapan algoritma ini, linux menerapkan dua macam algoritma, yaitu
◦
First-Come, First-Served/First-In, First-Out Algoritma ini adalah algoritma yang paling sederhana, proses yang lebih dahulu datang akan dilayani pertama. Jadi proses akan mengantri sesuai waktu kedatangannya. Kelemahan dari algoritma ini memiliki waiting time yang lama.
Gambar 4. Algritma FIFO pada linux ◦
Round-robin, algoritma ini menggiring proses yang ada di antrian. Proses akan mendapatkan jatah sebesar time quantum. Jika time quantumnya habis atau proses sudah selesai, CPU akan dialokasikan ke proses berikutnya. Tentu proses ini cukup adil karena tak ada proses yang dipriorotaskan. Setiap proses akan mendapatkan jatah waktu yang sama dari CPU (1/n), tak akan menunggu waktu lama lebih dari (n-1)/q. Algoritma ini sepenuhnya tergantung pada time quantum, jika terlalu besar maka tak ada bedanya dengan algoritma first-come firstserved. Jika terlalu kecil maka akan banyak peralihan sehingga banyak waktu terbuang. Misal: time quantum=5.
Menghitung wating time dan turn aroung time:
4. Manajemen Memori
Pada linux, terdapat dua jenis memory yaitu: a. Memori Fisik b. Memori Virtual Swap merupakan memori virtual yang digunakan oleh linux. Swap biasanya dibuat dalam suatu partisi hardisk, tetapi juga bisa menjadi sebuah file. Pengguna dapat membuat ruang swap selama instalasi Arch Linux atau setelah proses instalasi selesai. Swap umumnya direkomendasikan untuk pengguna dengan kurang dari 1 GB RAM, tetapi disarankan alokasi swap sama dengan jumlah memori fisik yang tersedia. Terdapat 2 (dua) cara yang digunakan oleh Linux dalam mengatur physical memory, yaitu page cache dan virtual memory system. Page cache digunakan untuk menyimpan file pemetaan memori. Virtual memory system dalam Linux diatur oleh Virtual Memory Manager (VMM). VMM memiliki beberapa tugas, yaitu bertanggung jawab untuk menjaga agar ruang alamat memori terlihat untuk setiap process, membuat pages dari virtual memory ketika diperlukan dan mengelola pengambilan pages dari atau ke disk, melihat ruang alamat process sebagai daerah dan pages yang berbeda, dan menyimpan beberapa ruang alamat virtual untuk setiap process. Dalam mengerjakan tugasnya, VMM selalu melibatkan Memory Management Unit (MMU),
termasuk subsistem disk. MMU memungkinkan OS untuk mengakses memori melalui alamat virtual dengan menggunakan alamat alias (pages dan page tables). Buddy allocator berinteraksi langsung dengan MMU untuk menyediakan pages yang valid ketika kernel melakukan request dan juga mengelola daftar pages. Slab allocator merupakan lapisan lain yang berada di luar lapisan Buddy allocator yang memiliki kemampuan untuk membuat cache objek memori obyek, dan mengelola serta mengalokasikan pages secara nyata dan tepat. Beberapa layanan kernel ikut membantu VMM dalam menjalankan tugasnya, seperti bdflush untuk mengelola pages terhadap disk atau I/O, dan kswapd menangani swapping pages ke disk. Status pages adalah free (dapat dialokasikan), active (sedang digunakan), atau inactive. Pages yang memiliki status inactive dapat bersifat dirty atau clean tergantung pada kondisi apakah telah dipilih untuk dihapus atau tidak. Pages yang bersifat dirty berarti bahwa pages tersebut sedang tidak digunakan tetapi tidak siap untuk digunakan kembali. OS bertugas untuk melakukan scan terhadap pages tersebut dan kemudian mengalokasikan kembali hingga sinkron dengan disk dan dapat digunakan kembali. 5. Manajemen File
Standar file system yang digunakan oleh Linux dikenal sebagai extended file system (ext) yang merupakan pengembangan dari UFS. ext telah berkembang menjadi ext2, ext3, dan ext4 mengimplementasikan Virtual File System (VFS) yang mendefinisikan 4 (empat) objek utama, yaitu: 1. Inode object yang mewakili file 2. File object yang mewakili file yang terbuka 3. Superblock object yang mewakili keseluruhan file system 4. Dentry object yang mewakili entry directory
Arch Linux versi terbaru menggunakan ext4 yang salah satu fiturnya adalah dapat mendukung ukuran storage hingga 1 EB dan sebuah file ukurannya dapat mencapai 16 TB. ext4 menggantikan pemetaan block yang digunakan pada ext2 dan ext3. Ext 4 dirilis secara komplit dan stabil berawal dari kernel 2.6.28. Jadi, apabila distro yang secara default memiliki kernel tersebut atau di atasnya secara otomatis system sudah support Ext 4. Apabila masih menggunakan Ext 3, dapat dilakukan konversi ke ext 4 dengan beberapa langkah yang tidak terlalu rumit. Keuntungan menggunakan Ext 4 ini adalah mempunyai pengalamatan 48-bit blok yang artinya dia akan mempunyai 1 EiB = 1.048.576 TB ukuran maksimum file system dengan ukuran 16 TB untuk maksimum file sizenya, fast fsck, journal check-summing, defragmentation support. Fitur lainnya adalah dapat menampung subdirektori hingga 64.000, dan memiliki kehandalan yang lebih baik dengan menggunakan
pengecekan check-summing.
6. Penanganan Deadlock
Deadlock merupakan suatu kondisi dimana proses tidak dapat berjalan lagi ataupun tidak ada komunikasi lagi antar proses. Penyebab deadlock: •
Mutual eklusif, merupakan jaminan bagi proses bahwa hanya akan ada satu proses yang menggunakan satu resource dalam waktu tertentu, dengan kata lain resource tidak dapat digunakan oleh proses secara bersama-sama sehingga akan semakin besar kemungkinan terjadi deadlock.
•
Hold & wait, dimana proses yang memiliki/ memegang (hold) resource meminta resource tambahan untuk dapat RUNNING, tetapi resource tambahan tersebut tidak pernah didapatnya.
•
Tidak bisa disela (preemtion), resource yang dimiliki satu proses tidak akan diberikan kepada proses lain sebelum proses itu sendiri mendapatkan resource tambahan dari proses lain sehingga dia akan melepaskan resource yang dimilikinya untuk proses lain, hal ini berlaku untuk semua proses yang ada, dengan kata lain tidak akan ada proses yang mengalah dan membiarkan dirinya disela proses lain.
•
Menunggu sirkular, proses menunggu dalam model sirkular yang tidak mungkin mendapatkan solusi karena satu sama lain saling menunggu tanpa batas waktu tertentu (tak terhingga).
Gambar 5. Ilustrasi Deadlock
Pada Linux kernel versi 2.6 ke atas yang mulai diterapkan pada Archlinux diperkenalkan suatu mekanisme seqlock ( sequential lock ) yang digunakan untuk melakukan penanganan deadlock . Seqlock merupakan mekanisme untuk menghindari jumlah writer yang lebih banyak dari jumlah reader yang membutuhkan suatu resource. Seqlock menyimpan sebuah sequence number yang digunakan untuk melakukan penguncian terhadap suatu resource. Penguncian dilakukan untuk mendukung sinkronisasi antara 2 (dua) writer dan penomoran dilakukan untuk konsistensi dari sisi
reader . Selain melakukan perubahan pada resource, writer akan melakukan increment terhadap sequence number baik pada saat mengakuisisi penguncian maupun setelah lepas dari penguncian. Reader membaca sequence number sebelum dan sesudah membaca resource. Apabila sequence number bernilai ganjil berarti writer telah melepaskan penguncian sementara resource sedang digunakan oleh reader . Jika terjadi perubahan pada sequence number berarti terjadi perubahan pada resource oleh writer pada saat sedang digunakan, maka reader perlu mengakses kembali resource tersebut hingga ditemukan sequence number yang sama.
View more...
Comments