Senin, 11 April 2016

Paging dan Swapping pada Sistem Operasi LINUX


Paging

Sistem paging adalah suatu sistem manajemen pada sistem operasi yang mengatur program yang sedang berjalan. Metode dasar dari paging adalah dengan memecah memori fisik menjadi blok-blok yang berukuran tertentu yang disebut dengan frame dan memecah memori logika menjadi bok-blok yang berukuran sama dengan frame yang disebut page. Untuk mengatasi apabila suatu program lebih besar dibandingkan dengan memori utama adalah dengan konsep overlay dan konsep memori maya(virtual memori):

# Konsep Overlay,
yaitu dimana program yang di jalankan dipecah menjadi beberapa bagian yang dapat dimuat oleh memory (overlay), sedangkan yang belum dieksekusi akan disimpan di dalam disk, yang nantinya akan dimuat ke memori begitu diperlukan dalam ekekusi.

# Konsep Memori Maya
yaitu kemampuan untuk mengalamati ruang memori melebihi memori utama yang tersedia.

Impelementasi Paging

System paging mengimplementasikan ruang alamat besar pada memori kecil menggunakan index register, base register dan segment register dan lain-lain. Pemakai seolah mempunyai ruang memori yang sangat besar tanpa mengelola overlay.
Beberapa istilah pada system paging adalah
  • ·         Alamat Maya (Virtual Address)
  • ·         Alamat Nyata (Real Address)
  • ·         Page
  • ·         Page Frame
  • ·         Page Fault
  • ·         MMU
Alamat Maya
Alamat maya adalah alamat yang dihasilkan perhitungan menggunakan index register, base register dan segment register dan lain-lain. Ruang alamat yang dibentuk alamat maya disebut ruang alamat maya (virtual address), V. jumlah alamat pada V disimbolkan dengan |V|.
Alamat maya ini yang diacu proses yang running.

Alamat Nyata

Alamat nyata adalah alamat di memori utama fisik. Ruang alamat yang dibentuk alamat nyata disebut ruang alamat nyata (real address space), R. jumlah alamat R disimbolkan dengan |R|
Pada implementasi system memori maya, normalnya |V| >> |R|.
Meski pengacuan proses dilakukan berdasar alamat maya, namun proses sesungguhnya berjalan di memori nyata. Alamat nyata harus dipetakan menjadi alamat nyata saat proses dieksekusi. Pemetaan harus dilakukan dengan sangat cepat atau kinerja system computer akan menurun drastic.
System computer akan menerjemahkan alamat maya menjadi alamat fisik. Bagian yang bertugas untuk memetakan adalah MMU.

Page

Page adalah unit terkecil virtual address space. Ruang alamat maya proses merupakan kelipatan page yang berukuran sama.

Page Frame

Page frame adalah unit terkecil memori fisik. Memori fisik secara konseptual dibagi menjadi sejumah unit berukuran tetap disebut page frame. Page fram sering juga disebut  frame.



Pemetaan page menjadi page frame



Page Fault

Page fault adalah exception untuk permintaan alokasi page ke memori. Dalam konteks memori maya, page fault sering juga disebut fault.

Memory Management Unit (mmu)

Mmu adalah chip atau kumpulan chip yang memetakan alamat maya ke alamat fisik.
Pada computer tanpa memori maya, alamat langsung diletakkan ke bus dan menyebabkan word memori fisik alamat itu dibaca atau ditulis.
Pada computer dengan memori maya, alamat tidak diletakkan ke bus secara langsung tapi lewat MMU yang kemudian memetakan alamat maya ke alamat memori fisik.
Memori fisik berisi sejumlah page frame yang memuat sebagian page-page proses, terdapat mekanisme translasi (penerjemahan) alamat (dilakukan MMU) untuk memetakan page ke alamat fisik.


MMU (Memory Management Unit)

MMU mempunyai fungsi sebagai berikut:
·       Pemetaan memori maya ke memori fisik
·    Bila alamat memori yang diminta tidak tersedia di memori fisik, MMU menerbitkan exception adanya page fault yang melewatkan ke system operasi untuk menanganinya.

Skema Pemetaan

Pada computer dengan memori maya, alamat tidak diletakkan ke bus secara langsung tapi dilewatkan ke MMU yang memetakan alamat maya ke alamat memori fisik. Pemetaan dapat dirumuskan secara formal sebagai berikut:
Misalkan
Ruang alamat maya adalah V = {0,1,…..,v-1}
Ruang alamat fisik adalah M = { 0,1,……,m-1}
Umumnya ruang alamat maya lebih besar disbanding alamat fisik (v>m)

MMU melakukan mekanisme translasi alamat, mengasosiasikan alamat maya ke alamat fisik. MMU merealisasikan fungsi f:V     M, yaitu:
f(x) |r, jika item x terdapat di memori fisik dengan lokasi di r
       |page fault jika item x tidak terdapat pada memori fisik

Komponen terpenting MMU adalah
1.      Register alamat maya
2.      Table page
3.      Register alamat fisik

Register Alamat Maya

Menyimpan alamat maya yang diacu.
Nilai di register alamat maya dibagi menjadi dua bagian yaitu:
  • Sejumlah bit berorder tinggi menyatakan nomor page maya.
  • Bit sisa adalah Offset alamat maya.

Tabel Page

Tiap elemen table sedikitnya berisi info berikut:
  • Present/absent bit
  • Bernilai 1 bila page di memori fisik, bernilai 0 bila page tidak di memori fisik.
  • Nomor page frame
  • Berisi nomor page frame dimana page berada.
Register alamat fisik
   Menyimpan alamat fisik yang disinyalkan ke bus.
Nilai register di alamat fisik dibagi 2, yaitu :
  • Sejumlah bit berorder tinggi menyatakan nomor page frame.
  • Bit sisa adalah offset alamat frame.
Alamat maya dipecah menjadi 2 yaitu:
  • Nomor page maya (nit berorder tinggi)
  • Offset
Pemetaan
  • Nomor page maya digunakan sebagai indeks ke tabel page untuk menemukan isian page maya.
  • Dari isian tabel page dapat diketahui apakah page dipetakan ke memori fisik (dengan memeriksa present/absent bit)
    • Apabila alamat terdapat di memori fisik maka isian di tabel page memuat nomor page frame. Nomor page frame di tabel page dikopi sebagai bit berorder tinggi di register alamat fisik dan ditambah offset di alamat maya.
    • Bila alamat tidak ada di memori fisik maka MMu menerbitkan page fault.
  • MMU mengkopi nomor page frame di isian tabel page dengan indeks nomor page ke register alamat fisik dan menambah dengan offset alamat maya.

Cara kerja ini dapat dilihat sebagai berikut:


Apabila ternyata nomor page tidak ada di memori fisik, yaitu nilai present/absent bit di isian tabel page bernilai 0, MMU menerbitkan page default. Rangkaian aksi yang dilakukan adalah sbb:
  1. MMU memperingatkan page tidak dipetakan ke memory fisik dan pemroses melakukan trap ke system operasi (disebut page fault).
  2. Membebaskan bagian page frame memori fisik yang jarang digunakan dengan menyimpan page frame tersebut ke disk.
  3. Memasukkan page yang diacu ke bagian page frame yang dibebaskan.
  4. Mengkonsolidasi pemetaan antara memori maya <-->memory fisik.
Ketika terjadi page fault, system operasi memilih frame di memori fisik untuk diganti dengan page berguna yang akan masuk.
·           Jika page yang diganti telah dimodifikasi, page harus ditulis ke disk. Page yang telah dimodifikasi disebut dirty page.
·           Jika page belum diubah, kopian di disk masih up to date sehingga page tidak perlu ditulis ke disk.
Tabel tabel paging
Pemakaian tabel page pada system paging menimbulkan 2 masalah utama yaitu:
1.      Tabel page dapat berukuran sangat besar.
2.      Pemetaan harus dilakukan secara tepat.

Tabel page dapat berukuran sangat besar
   Misal:
  • Register alamat maya 32 bit.
  • Ukuran page 4 kilobyte = 212 byte
       Berarti terdapat 220 page ,yaitu alamat maya 32 bit berarti memory dapat memuat 232 byte karena masing-masing page adalah 212 byte. Berarti jumlah page adalah 232  dibagi 212 = 220 page.
  • Register alamat maya 64  bit
  • Ukuran page 4 kilobyte,
Berarti akan terdapat 242 page.

Bila memori maya sangat besar maka tidak mungkin menggunakan satu tabel tunggal karena akan diperlukan ukuran tabel sangat besar.

Solusi
Mengunakan tabel-tabel bertingkat . beberapa rancangan tabel paging untuk beragam sesuai system computer, yaitu:
·      DEC PDP-11 menggunakan one – level paging.
·      DEC VAX menggunakan two – level paging.
·      SUN SPARC menggunakan three – level paging.
·      Motorola A 68030 menggunakan four – level paging.

Pemetaan harus dilakukan secara cepat
Pemetaan alamat maya ke fisik dilakukan setiap terjadi pengacuan memori.
Instruksi computer biasanya berbentuk:
     Operator operand_1,operand_2,…,operand_N
Operand merupakan pengacuan ke memory, karena disimpan ke memori maka intik 1 instruksi sedikitnya terjadi 1 – 2 operand. Jika 1 intruksi memerlukan 10 ns, maka pemetaan dilakukan beberapa ns saja agar tidak terjadi bottleneck.

Cara Membuat Memori Swap melalui Terminal

Overview

SWAP adalah memori pada hard disk yang berbentuk virtual, jadi seperti ini cara kerjanya, saat RAM kita bekerja terlalu keras dan membuat komputer kita jadi heng, maka di swap ini akan maju untuk membantu si ram bekerja.

  • Buka Terminal anda,ketikkan sintax dibawah

sudo dd if=/dev/zero of=/mnt/2000Mb.swap bs=1M count=2000
angka yang dituliskan bewarna merah bisa diubah sesuai dengan memori swap yang ingin dibuat. lalu setelah itu tuliskan lagi

  • Kemudian ketikan sintax dibawah lagi

sudo chmod 600 /mnt/2000Mb.swap
sudo mkswap /mnt/2000Mb.swap
sudo  swapon /mnt/2000Mb.swap  
Untuk membuatnya menjadi permanen, silahkan ketikkan perintah di bawah ini melalui terminal:


gksudo gedit /etc/fstab
maka akan muncul kolom gedit dan silahkan masukkan kode di bawah ini pada bagian paling bawah seperti gambar di bawah ini: 
gedit linux

  •  Pada Jendela gedit tuliskan kode berikut :
/mnt/2000Mb.swap none swap sw 0 0
    • Klik menu ‘Save’ pada bagian atas jendela atau tekan Ctrl + S untuk menyimpan hasil pengeditan Anda tersebut, lalu tutuplah kotak jendela file fstab di atas.
    • Silakan ‘restart’ atau ‘reboot’ Ubuntu Anda untuk melihat hasilnya. Memori Swap akan otomatis aktif begitu Ubuntu Anda dihidupkan.

    Manajemen File dan Direktori

    Manajemen File adalah metode dan struktur data yang digunakan Sistem Operasi untuk mengatur dan mengorganisir file pada disk atau partisi. File system juga dapat diartikan sebagai partisi atau disk yang digunakan untuk menyimpan file-file dalam cara tertentu. Cara memberi suatu file sisitem ke dalam suatu disk atau partisi dengan cara melakukan format.
    Fungsi manajemen file :

    1. Penciptaan,modifikasi,dan penghapusan file
    2. Mekanisme pemakaian file secara bersama
    3.  Kemampuan backup dan recovery untuk mencegah kehilangan karena kecelakaan atau dari upaya penghancuran informasi
    4. Pemakai dapat mengacu file dengan nama simbolik bukan menggunkan penamaan yang mengacu perangkat fisik
    5. Pada lingkungan sensitive dikehendaki informasi tersimpan aman dan rahasia
    6. file harus menyediakan interface user-friendly
    Untuk memanipulasi file dan direktori, antara lain:
    1.  Daftar konten direktori
    2. Menyalin, memindahkan, atau menghapus file dan direktori
    3.  Manipulasi banyak file dan direktori secara rekursif
    4. Menggunakan perintah find untuk mencari berdasarkan file
    5. Kompresi dan dekompresi file menggunakan gzip dan bzip2

    Melihat daftar direktori


    • $ pwd
    • $ ls
    • $ ls/home/user/praktikum

    Menampilkan daftar direktori dengan format yang panjang


    • $ ls –al
    Perintah ls -al
    Keterangan :
    Pada kolom pertama, ada beberapa atribut yang perlu kita ketahui pada karakter pertama yaitu :

    • d ( directory )
    • - (regular file)
    • l (symbolic link)
    • s (unix domain socket)
    • p (named pipe)
    • c (character device file)
    • b (block device file )

    9 karakter selanjutnya, menunjukkan permission yang terbagi menjadi 3 grup, yang mewakili read, write, dan execute. Ketiga karakter tersebut ditandai sebagai berikut:
    • r (read permission) 
    • w (write permission) 
    • x (execute permission) 
    • - (no permission)

    Direktori
    Membuat direktori lebih dari satu 
    $ mkdir dir1 dir2 

    Jika ingin membuat direktori dan subdirektori (bersarang): 
    $ mkdir –p d1/d2/d3 
    *-p  adalah atribut yang memiliki arti parent, dapat digunakan pada rmdir

    Menghapus direktori: 
    $ rmdir –p d1/d2/d3 dir1 dir2 
    *direktori harus dalam keadaan kosong

    Menghapus direktori secara Rekursif: 
    $ rm –r dl

    Membuat file kosong
    Kita dapat membuat file kosong dengan menggunakan command touch. Dapat menggunakan tambahan ekstensi maupun tidak
    $ touch file1 file2 file3

    Menggunakan command find
    Command find digunakan untuk mencari file atau direktori, dapat mencari berdasarkan nama, tipe, atau waktu
    $ find . -name “text”
    Command tersebut digunakan untuk mencari file di direktori saat ini dengan nama “text”.

    Compression dan Decompression
    Ketika kita ingin membuat arsip (archive), kumpulan file cadangan, atau mengirimkan file lebih dari satu, biasanya kita menggunakan program compressor. Pada Linux, ada dua program yang tersedia untuk melakukan kompresi, yaitu gzip dan bzip2.

    Contoh dengan gzip
    $ cp /etc/services .
    $ ls -l
    $ gzip services
    $ ls -l

    Untuk melakukan decompress, tambahkan parameter -d
    $ gzip -d services.gz

    Contoh dengan bzip
    $ bzip2 services

    Untuk melakukan decompress, gunakan command bunzip2
    $ bunzip2 services.bz2  

    Minggu, 10 April 2016

    Manajemen Memori, Disk & I/O

    Manajemen Memori
    Manajemen memori adalah metode yang sistem operasi gunakan untuk mengelola, alokasi atau dealokasi, memilih, dan menentukan proses yang dijadwalkan oleh CPU untuk dimasukkan dalam antrian pada memori.
    Dalam linux, ada beberapa command yang bisa kita jalankan di terminal untuk manajemen memori, seperti:
      • $free = untuk melihat memori yang dipakai proses dan bagaimana swap space dan jumlah swap yang terjadi
      • $cat /proc/meminfo = untuk melihat penggunaan memori dan swap
      • $cat /proc/sys/vm/swappiness = untuk  mengatur kecenderungan kernel untuk memindahkan proses dari memori ke swap.
    Manajemen memori merupakan salah satu bagian terpenting dalam sistem operasi. Memori perlu dikelola sebaik-baiknya agar :
          1. Utilitas CPU meningkat.
         2. Data dan instruksi dapat diakses dengan cepat oleh CPU.
         3. Tercapai efisiensi dalam pemakaian memori yang terbatas.
         4. Transfer data dari/ke memori utama ke/dari CPU dapat lebih efisien.

         5. Mengelola informasi yang dipakai dan tidak dipakai.
         6. Mengalokasikan memori ke proses yang memerlukan.
         7. Mendealokasikan memori dari proses telah selesai.
         8. Mengelola swapping atau paging antara memori utama dan disk.
    Manajemen memori dibagi menjadi 2, berdasarkan keberadaannya,  yaitu dengan swapping/paging atau tanpa swapping/paging .
    1. Dengan swapping atau paging.
    Manajemen memori dengan pemindahan proses antara memori utama dan disk selama eksekusi.
    2. Tanpa swapping atau paging.
    Manajemen memori tanpa pemindahan proses antara memori utama dan disk selama eksekusi.
    Manajemen Disk dan input/output
    Manajemen disk dan I/O mencakup pengelolaan hard drive seperti pembuatan partisi, format partisi, manajemen media penyimpanan, pengaturan komponen input seperti printer, speaker, optical disk drive, dan lainnya. Beberapa command untuk manajemen disk untuk partisi melalui terminal yang ada di Linux :
    fdisk –d = Menghapus partisi
    fdisk -l  = Melihat daftar partisi yang dikenali
    fdisk -n = Membuat partisi baru
    fdisk -v = Verifikasi partisi

    Senin, 21 Maret 2016

    Penjadwalan Proses Linux

    Penjadwalan pada linux identik dengan yang dinamakan dengan Crontab.

    Apa itu Crontab ?

    Crontab adalah perintah dalam Sistem Operasi Linux yang berfungsi untuk melakukan penjadwalan proses berdasarkan waktu. Berdasarkan waktu disini bisa berulang dalam waktu tertentu atau sesuai dengan waktu yang kita inginkan. Dan pastinya sudah diperintahkan.

    Sebelumnya, dalam Linux harus sudah ada sejenis aplikasi untuk contrab ini. Dan biasanya sudah ada. Namun jika belum ada, bisa mengetikkan

    sudo apt-get install crontab

    Rabu, 09 Maret 2016

    Manajemen Proses

    MANAJEMEN PROSES

    Definisi Proses dalam system operasi adalah Program yang sedang di eksekusi (running). Dalam sistem operasi linux, pross dapat diciptakan dan dapat dimusnahkan. Setiap proses yang berjalan di sistem operasi linux memiliki Process ID (PID).

    Tujuan managemen process yaitu Mengatur sumber daya, yang digunakan dengan sebaik mungkin.


    Empat Konsep dasar pada Manajemen Proses yaitu :

    1.  multi programming :
    suatu pekerjaan harus di selesaikan secara paksa untuk bisa menjalankan program yang lain.

    2.  multi proses :
    Proses yang dilakukan bisa lebih dari satu proses dalam waktu yang bersamaan.

    3.  Pseudoparallelism: (eksekusi secara paralel dalam sistem).

    4.  Distributed Processing :
    Proses pengolahan data antara computer utama dengan computer lainnya yang saling terhubung melalui suatu jalur komunikasi.

    Beberapa model proses yaitu :
    ·         Sequential Process
    ·         Multiprogramming
    ·         CPU Switching

    Senin, 29 Februari 2016

    Basic Command LINUX

    BAGAIMANA SISTEM OPERASI LINUX ?
    Linux merupakan sistem operasi yang dikembang dari sebuah proyek hobi seorang mahasiswa dari Universitas Helsinki yang dimulai pada tahun 1991 (pengembangannya). Proyek ini dimulai pada saat Linus (mahasiswa Helsinki) yang menulis sebuah kernel untuk prosesor dengan arsitektur 32-bit. Kernel itu sendiri adalah inti dari sebuah sistem operasi.

    BAGAIMANA STRUKTUR SISTEM OPERASI?
    Sistem Operasi (SO) memiliki struktur yang terdiri dari Kernel (sebagai pengelola hardware yang kita gunakan, yang menjembtani antara aplikasi komputer dengan hardware.
    Dalam tingkatan, kernel merupaka struktur SO paling luar dalam sudut pandang komputer. Strukturnya bisa seperti ini

    Aplikasi (browser, musik player, dll)
    Sistem Operasi (Kernel Modul, Kernel, System Library)
    Hardware

    Namun dalam sisi user, strukturnya :
    Aplikasi
    Shell
    Kernel
    Hardware


    Suatu sistem operasi (terlepas dari tingkatannya), memiliki  tebagi dalam tiga bagian, yaitu :
    1. Kernel         : inti dari suatu sistem operasi. Kernel menyediakan semua fungsi untuk menjalankan proses, juga menyediakan layanan sistem untuk ke perangkat keras.
    2. System Library        : kumpulan fungsi standar dimana aplikasi dapat berinteraksi dengan kernel.
    3. System Utilities       : Program yang bertugas mengatur semua program yang diperlukan.


    Pada linux, ada beberapa komponen tambahan yang diadaptasi dari UNIX, yaitu :
    1. Shell            : fasilitas yang dapat memproses permintaan (request) kita kepada sistem
     operasi. Biasanya interface yang digunakan tidak berbentuk GUI (Graphical User Interface).
    2. Comman and Utilities         :  berbagai perintah dan fasilitas yang bisa digunakan
     untuk keperluan sehari-hari dalam pengunaan komputer.
    3. Files and Directories           : Suatu cara yang digunakan UNIX untuk mengelola data menjadi sebuah file, dan mengelola file ke dalam suatu direktori. Direktori – direktori ini dikelola ke dalam struktur
     pohon yang disebut dengan filesystem.

    Yang perlu diketahui dalam penggunaan terminal / shell ini adalah :
    1. Kita dapat melakukan proses seperti pada biasanya, perbedaannya hanya di Interfacenya.
    2. Lokasi awal saat membuka Terminal adalah home user, yang diberi simbol “~”.
    3. Setiap perintah (command/syntax), lokasi dan file bersifat case sensitive.
    4. Untuk menyelesaikan penulisan nama file, gunakan tombol Tab.
    5. Perintah-perintah yang bisa dijalankan tersimpan di folder /bin di computer.

    Berikut adalah basic command LINUX :

    • Membuat direktori
    Mkdir “nama_folder”
    • Menampilkan isi direktori
     ls
    ls –l : Memperlihatkan daftar file beserta atribute seperti pemilik, permission, ukuran dan tanggal modifikasi
    ls –a : Memperlihatkan daftar file dan file tersembunyi
    ls –al : Gabungan perlintah –l dan –a
    • Berpindah Direktori
    cd “nama folder”
    cd atau cd~ : Pindah ke direktori Home
    cd : Mundur ke direktori sebelumnya
    • Menampilkan posisi kita
    pwd
    • Menyalin File
     cp file_yang_akan_disalin direktori_tujuan
    cp file  /path/ke/direktori/sesuatu  →  mengkopi  file  tertentu  ke
    cp -r folder /path/ke/direktori/sesuatu → mengkopi folder tertentu
    cp *.extension  /path/ke/direktori/sesuatu  →  mengkopi  file  –  file
    cp nama*  /path/ke/direktori/sesuatu  →  mengopi  file  –  file  yang
    • Memindahkan File
    mv “file yang akan dipindahkan” “direktori tujuan”
    mv “nama file lama.ehm” “nama filebaru.ehm”
    • Menghapus File
    rm file : menghapus file
    rm -r folder : menghapus folder
    rm -rf folder : menghapus folder secara paksa
    • Mencari file dalam direktori
    find nama_file/folder_yang_akan_dicari
    • Melihat isi file
    cat :Perintah ini  digunakan  untuk  menampilkan  isi  file  kedalam  bentuk  palin
    cat nama_file.ehm
    • Menampilkan jumlah baris, jumlah kata, dan ukuran file (dalam byte) suatu file.
    wc nama_file.txt

    Copyright Faisal Syaiful Anwar - http://cs.upi.edu