Category: Uncategorized

Sistem Operasi

SISTEM OPERASI

 

  • Sistem operasi adalah sebuah progam yang menghubungkan pengguna komputer dengan perangkat komputer dan mengontrol semua jenis perangkat lunak yang ada di komputer.
  • Computer/machine=to compute= cacah/hitung
  • Computer goals=CPU, input, output, memori
  • Gambaran Abstraksi Sistem Operasi
  • Contoh sistem operasi: Android, IoS, MacOS, Windows, Machintos, Linux, Blackberry, Symbian
  • Definisi SO:
    • Sebagai sebuah progam yang mengatur hardware dengan menyediakan landasan untuk aplikasi yang berada di atasnya.
    • Bertindak sebagai penghubung antara user dengan hardware
    • Bertugas untuk mengendalikan dan mengkoordinasi penggunaan hardware untuk berbagai progam aplikasi bagi bermacam-macam user
    • Sebagai kernel yaitu mengatur progam yang terus menerus running selama dihidupkan
    • Sebagai guardian yaitu pengawal selama berjalannya kegiatan-kegiatan komputer
  • Komponen Sistem Operasi:
    • File : sistem berkas yang dijalankan dan dibentuk oleh SO
    • User Interface : berupa bentuk tampilan yang menjadi interaksi antara user dengan komputer. Terbagi menjadi dua yaitu:
      • CLI (Command Line Interface): tampilan berupa baris-baris text saja
      • GUI (Graphical User Interface): tampilan interaktif, resolusi gambar, dan jumlah warna yang lebih bervariasi.
    • Kernel : software yang membentuk sistem dan memiliki tugas yang melayani bermacam progam aplikasi untuk mengakses hardware komputer secara aman dan terkendali.
  • Tujuan dasar SO:
    • Efisien: SO memungkinkan sumber daya komputer digunakan secara efisien
    • Kemudahan: SO membuat komputer untuk lebih mudah dipakai oleh user
    • Kemampuan berevolusi: SO disusun sedemikian rupa sehingga memungkinkan pengembangan yang efektif, pengujian, hingga penerapan sistem baru tanpa mengganggu sistem yang ada.
  • Tugas utama SO:
    • Pengelola seluruh sumber daya sistem komputer (fisik (input, output, penyimpanan, penampilan layar, memori) & abstrak (data dan progam))
    • Penyedia layanan:
      • Pembuat progam
      • Eksekusi progam
      • Akses perangkat input output
      • Kontrol akses berkas
      • Pengaksesan sistem
      • Deteksi eror & respon
      • Akunting
  • Proses Sistem Operasi:
    • Booting: menghidupkan komputer
    • Deteksi OS di harddisk
    • Masuk sistem operasi
    • Sistem operasi berjalan
    • Deteksi aplikasi desktop
    • Aplikasi desktop berjalan
  • Jenis-jenis Sistem Operasi Berdasarkan Jumlah Pengguna dan Progam yang Dijalankan:
    • Single User – Single Tasking: DOS
    • Multi User – Single Tasking: novel netware
    • Single User – Multi Tasking: windows, MacOS, BeOS, JDS
    • Multi User – Multi Tasking: Unix, Linux, FreeBSD, OpenBSD
  • Jenis-jenis Sistem Operasi Berdasarkan Hardware Komputer
    • Personal Computer (Desktop/Laptop)
    • Komputer Server
  • Macam-macam SO:
    • Sistem Operasi Stand Alone
      Sistem Operasi lengkap yang dapat berdiri sendiri dan bekerja pada komputer desktop, notebook, atau perangkat komputer bergerak. Contohnya DOS, Windows, Linux, MacOS.
    • Sistem Operasi Live CD
      SO yang menggunakan perangkat CD/DVD room tanpa perlu menginstal secara permanen di komputer, akan tetapi fitur-fitur yang dimiliki tidak selengkap SO stand alone. SO ini cukup ringan untuk dijalankan karena ukurannya terbilang cukup kecil. Contohnya Knoppix, Win XP, Live CD.
    • Sistem Operasi Jaringan
      SO yang dirancang khusus untuk mendukung keperluan jaringan. Layanan yang ditawarkan yaitu Sharing Printer, DNS Service, Http Service, dll. Contohnya Windows Server, Novell NetWare, dan Red Hare.
    • Sistem Operasi Embedded
      SO yang memiliki fungsi yang tertentu dan cukup spesifik, SO yang tertanam langsung pada komputer dan tidak bisa berdiri sendiri. Contohnya JavaOS, Embedded Linux, LynxOS, eCOS.

Virtualisasi

VIRTUALISASI

 

A. Konsep Dasar Virtualisasi

  • Virtualisasi = sebuah teknologi untuk mengubah/membuat/mengganti suatu hal/sistem yang berbentuk fisik menjadi bentuk mayanya sehingga serupa/meniru hal/sistem.
  • Contoh: virtual memory, virtual private network, virtual machine (ex: Java), virtual storage, system virtualization (VMware, Xen)
  • Pengelompokkan Virtualisasi:
    1. Virtualisasi Sistem (System Virtualization)
      • Virtualisasi pada peralatan/perangkat keras (peralatan jaringan, CPU, memori, GUI, I/O)
      • Perangkat lunaknya yaitu VMM (Virtual Machine Monitor)/hypervisor
    2. Virtualisasi Proses (Process Virtualization)
      • Virtualisasi pada platform virtual yang mengeksekusi proses
      • Ex: pada sistem write once, run everywhere, contoh: JVM membaca kode byte/program dan mengimplementasikannya ke format sistem native

 

B. Mesin Virtual/Virtual Machine (VM)

  • VM = bentuk duplikat dari sistem mesin fisik/nyata (hardware/software)
  • Mesin Fisik/Physical Machine terdiri dari:
    • Perangkat keras fisik: prosesor, memori (RAM), chipset (NIC/Network Interface Card), I/O perangkat (disk), dll
    • Perangkat lunak: tertanam di perangkat keras (sistem operasi, aplikasi, dll)
  • Mesin Virtual terdiri dari:
    • Hardware-level abstraction (Abstraksi perangkat keras): prosesor, memori (RAM), chipset (NIC/Network Interface Card), I/O perangkat (disk) => dalam bentuk virtual
    • Virtualisasi perangkat lunak: terdapat tambahan berupa lapisan virtualisasi yang memisahkan SO dengan hardware, terdapat beberapa mesin virtual yang terdiri dari virtual hardware dan software (VM isolation)
  • Kelebihan VM isolation: keamanan terjamin saat multiplexing (menjalankan beberapa VM pada satu host) karena sudah diatur prosesor ; error yang terjadi pada satu VM tidak akan mempengaruhi VM lain
  • VM Encapsulation: pengibaratan seluruh VM adalah file (OS, aplikasi, data) yang disimpan pada memori dan status perangkat. Sistem akan menangkap dan menduplikat VM dengan cepat dan dapat disebarkan dengan mudah
  • VM Compatibility: perangkat keras fisik yang diekspos ke VM tersembunyi pada lapisan virtualisasi. Dalam implementasi create once, run enywhere, tidak ada masalah dalam konfigurasi. VM dapat dimigrasi ke host/komputer lain. SO lama dapat dijalankan ke platform baru.
  • Istilah-istilah:
    • Hypervisor/Virtualizer: sebutan untuk perangkat lunak yang digunakan untuk memvirtualisasi sistem & monitoring sumber daya komputasi
    • Host: server fisik (komputer) yang dihubungkan hypervisor
    • Guest: beberapa sistem virtual yang berjalan di atas virtualization system (lapisan virtualisasi)
    • Emulasi: teknik merubah perintah melalui software. (emulasi mengakibatkan overhead sehingga jika semakin banyak perintah yang diemulasikan/diubah, maka semakin besar dampak overhead)
    • Emulator: perangkat lunak yang melakukan emulasi (ePSXe, Qemu, Bochs, DOSbox, Dynamips/Dynagen)

 

C. Sejarah

  • Pada 1964, IBM’s Cambridge Scientific Center mengembangkan CP-40 dalam rangka membuat virtualisasi penuh. Pada 1970, IBM mengumumkan sistem /370 tanpa memori virtual. Pada 1972, ditambahkan memori virtual pada sistem /370.
  • Pada 1997, dirilisnya versi pertama dari virtual PC untuk platform Machintos. Pada 1999, VMware memperkenalkan platform virtual VMware.
  • Pada 2003, Microsoft mengakuisisi teknologi virtualisasi. Pada 2005, VMware merilis VMware Player (pemutar gratis mesin virtual). Pada 2008, VMWare merilis VMWare Workstation 6.5 beta untuk Windows dan Linux.

 

D. Jenis Virtualisasi Perangkat Keras (Mesin)

  1. Partial Virtualization
    • Tidak semua bagian dari hardware pada masing-masing guest divirtualisasikan, sehingga perlunya modifikasi sebagian pada SO dan software guest.
    • Ex: Compatible Time-Sharing System (CTTS) pada IBM M44/44X.
  2. Full Virtualization
    • Virtualisasi sepenuhnya pada hardware pada setiap guest yang dikelola oleh hypervisor
    • Ex: Desktop, Parallels, virtualbox, VMware
    • Menggunakan arsitektur virtualizable
  3. Paravirtualization
    • Pemvirtualisasian dilakukan sesuai permintaan dari guest (SO) sehingga meniru sistem hardware yang berbeda.
    • Ex: Xen
    • DomO: guest OS utama yang diberi tugas oleh host untuk mengelola dan melayani guest lain. DomO diberi hak istimewa yaitu dapat mengakses langsung hardware pada host
    • DomU: guest OS yang dikelola oleh DomO. DomU mengakses hardware melalui para API pada DomO

 

E. Perangkat Lunak Virtualisasi (Hypervisor)

  1. Virtualisasi Desktop/Workstation
    • Sistem virtualisasi dihubungkan ke SO host (beserta tools), lalu dapat mengontrol sumber daya komputasi bersama SO host.
    • Pengelolaan sistem & mesin virtual dilakukan melalui tool pada SO host.
    • Ex: Desktop, Xen, Parallels Desktop, VMware Workstation
  2. Virtualisasi Server/Enterprise
    • Hypervisor yang memvirtualisasikan pada perangkat server fisik & memiliki kontrol penuh dalam pengelolaan & pemetaan sumber daya komputasi.
    • Pengelolaan sistem & mesin virtual dilakukan melalui tool dasar pada hypervisor/ tool lengkap pada komputer/server lain menggunakan jaringan komputer
    • Ex: Xen Server, VMware ESX/vSphere

 

F. Hardware Assisted Virtualizatation

  • Hardware assisted Virtualization = metode dalam mengakses virtualisasi penuh dengan bantuan perangkat keras khusus pada host.
  • Ex: IntelVT-x/AMD-V, Intel VT-d
  • Proses:
    • Perangkat keras server menyadari virtualisasi
    • Hypervisor & VMM load di Ring 1
    • Hapus kemacetan emulasi CPU
    • Memori virtualisasi datang di quad core AMD dan Intel CPU
    • Guest SO dijalankan di Ring 0
    • VMM menggunakan prosesor untuk mencegat & meniru operasi istimewa di server tamu
    • Hardware assisted Virtualization menghapus banyak masalah yang menyebabkan penulisan VMM menjadi tantangan
    • VMM dijanlankan lebih dari Ring 0, ring -1 terbentuk virtual

 

G. Perbandingan antara Full Virtualization dengan Paralization

  1. Full Virtualization
    • Definisi: perangkat keras yang tepat diekspos ke sistem operasi
    • Tingkat keefektifan eksekusi: eksekusi yang efisien
    • Sifat sistem operasi: sistem operasi yang berjalan tidak diubah
    • Arsitektur: membutuhkan arsitektur virtualizable
    • Contoh: VMWare
    • Ilustrasi:
  2. Paravirtualization
    • Definisi: sistem operasi dimodifikasi untuk dijalankan di bawah VMM (Virtual Machine Monitor)
    • Tingkat keefektifan eksekusi: eksekusi overhead
    • Sifat sistem operasi: membutuhkan kode OS porting
    • Arsitektur: diperlukan untuk beberapa arsitektur (contoh: x86)
    • Contoh: Xen
    • Ilustrasi:

 

H. Perbedaan Intel VT-x/AMD-V dengan Intel VT-d/AMD-VI

Prosesor AMD-V merupakan prosesor pertama yang mendukung virtualisasi, sedangkan untuk Intel prosesor dengan teknologi virtualisasi mulanya dikenal dengan Intel VT-x. Sedangkan pada prosesor Intel VT-d atau AMD-VI memperluas teknologi virtualisasi dengan bantuan perangkat keras terutama perangkat I/O. Pada Intel VT-x/AMD-V, perlu adanya pengaktifan BIOS terlebih dahulu sebelum aplikasi dapat memanfaatkannya.

 

I. Teknologi Pendukung Virtualisasi

Pada proses virtualisasi dibutuhkan suatu teknologi pendukung virtualisasi yang fungsinya untuk menghubungkan komunikasi dan instruksi antara komunitas virtual dengan sumber daya fisiknya atau yang disebut Hypervisor. Hypervisor adalah sebutan untuk perangkat lunak yang digunakan untuk memvirtualisasi sistem & monitoring sumber daya komputasi. Teknologi pendukung virtualisasi tersebut berbentuk aplikasi (software). Contoh dari teknologi pendukung tersebut atau hypervisor yaitu Vmware Workstation, Virtual Box, Microsoft Virtual PC, Mac-On Linux, Parallels Workstation, Qemu, Hercules, dll.

 

J. Arsitektur untuk Virtualisasi

Arsitektur virtualisasi adalah model pengaturan infrasturktur atau mengelola sumber daya fisik (perangkat keras), jaringan (modem, kabel jaringan, dll), virtualisasi (hypervisor), dan penyimpanan agar masing-masing memiliki keterkaitan dan pengelolaan yang baik. Terdapat dua jenis arsitektur virtualisasi yaitu arsitektur host dan arsitektur bare-metal.

 

K. Cara Membangun Virtualisasi

Cara membangun infrastruktur atau arsitektur virtualisasi terdapat dua cara yaitu host dan bare-metal. Arsitektur host yaitu virtualisasi yang dihosting atau arsitektur yang berjalan pada sistem operasi tersebut untuk menjalankan dan mengatur beberapa mesin virtual di dalamya, sedangkan arsitektur bare-metal yaitu hypervisor yang dipasang langsung pada perangkat keras dengan sistem operasi yang mendasarinya. Pada arsitektur host, sistem operasi diinstal terlebih dahulu pada perangkat keras, kemudian menginstal hypervisor dan dijalankan pada mesin virtual. Contoh hosted hypervisor yaitu VMware Server dan Parallels Desktop. Sedangkan pada arsitektur bare-metal, hypervisor dipasang langsung pada perangkat keras atau hypervisor bisa mengakses langsung perangkat keras tanpa melewati sistem operasi. Lalu mesin virtual dan aplikasinya diinstal langsung pada hypervisor tersebut. Contoh bare-metal hypervisor yaitu VMware ESXi, Citrix XenServer, serta Microsoft Hyper-V Hypervisor.

 

L. Green IT dengan Virtualisasi

Green IT adalah penggunaan sumber daya IT dengan cara efisien, efektif, dan ekonomis dengan memerhatikan lingkungan. Dengan menerapkan konsep virtualisasi berarti menerapkan konsep green IT juga karena konsep virtualisasi yaitu menggabungkan beberapa sistem atau perangkat fisik ke suatu sistem maya tanpa mengurangi keunggulan dari sebelumnya. Dari penjelasan konsep virtualisasi, maka virtualisasi dapat mengurangi perangkat fisik yang diproduksi, mengurangi konsumsi listrik yang dipakai hardware, dan juga mengurangi energi panas dari hardware yang bekerja sehingga dapat mengurangi dampak dari pemanasan global.

 

M. Keuntungan dan Kerugian Virtualisasi

  1. Keuntungan
    • Mengurangi biaya untuk pembelian perangkat keras karena bisa divirtualisasikan
    • Bisa meningkatkan efisiensi fungsi dari perangkat keras dengan menerapkan konsep virtualisasi
    • Mengurangi infrastruktur IT dan juga menghemat biaya listrik
    • Proses backup berjalan aman karena jika terdapat data yang rusak dapat dibaca dan digunakan lagi
    • Ruangan menjadi tidak mudah panas karena sedikitnya hardware yang digunakan
  2. Kerugian
    • Padatnya saluran jaringan karena banyaknya mesin virtual yang disambungkan ke satu perangkat fisik
    • Memerlukan waktu yang banyak untuk debug dan perancangan infrastruktur mesin yang kompleks
    • Jika terdapat satu titik kesalahan pada server induk, maka mesin virtual pada server induk tersebut tidak bisa digunakan

Sistem File

SISTEM FILE

 

A. Konsep File

  • File= unit ruang penyimpanan yang digunakan untuk menyimpan informasi pada penyimpanan sekunder pada komputer (magnetic tape, magnetic disk, optical disk).
  • Tipe informasi pada file:
    • Data: karakter, numerik, biner
    • Program: object, source, executable
  • Atribut file:
    • Nama: disimpan sesuai dengan nama file yang ditulis user
    • Tipe: tipe dari file
    • Lokasi: lokasi/bagian-bagian dimana file berada/tersimpan
    • Ukuran: ukuran dari file yang digunakan
    • Proteksi: memonitor siapa yang dapat mengeksekusi, menulis, dan membaca
    • Waktu, tanggal, identifikasi pengguna (user): informasi data yang digunakan pada proteksi
  • Operasi-operasi pada file:
    a) Operasi-operasi dasar

    • Create file (membuat file)
    • Write file (menulis file)
    • Read file (membaca file)
    • File seek (reposition dalam file)
    • Delete file (menghapus file)
    • Truncate file (memotong file
  • b) Operasi-operasi tambahan
    • Create file (membuat file)
    • Write file (menulis file)
    • Read file (membaca file)
    • File seek (reposition dalam file)
    • Delete file (menghapus file)
    • Truncate file (memotong file)
  • Tipe file:

 

B. Metode Akses
Informasi yang tersimpan di file, harus bisa diakses agar user bisa membaca dan edit informasi tersebut, terdapat beberapa metode akses yaitu:

  • Sequential Access (Akses Berurutan)
    • Metode akses paling sederhana dimana akses dilakukan dengan satu arah dari awal hingga ahir secara berurutan atau satu per satu (record), kalau ingin mundur maka harus rewind
    • Operasi pada akses berurutan:
      Read next –> write next –> reset –> no read after last write (rewrite)
  • Direct Access (Akses Langsung)
    • Akses dapat dilakukan dengan cepat karena tidak perlu melakukan record secara berurutan. Pada metode ini, akses dilakukan secara acak ke sembarang (bisa di posisi mana saja) blok.
    • Operasi pada akses langsung:
      Read n
      Write n
      Position to n

      • Read next
      • Write next
    • rewrite n
      (n = nomor blok relatif)
  • Metode Akses lain
    • Berdasarkan akses langsung
    • Menggunakan indeks file, kemudian menggunakan pointer untuk mengakses file secara langsung
    • Operasi-operasi pada akses metode lain:

 

C. Struktur Direktori

  • Direktori = kumpulan yang berisii semua file
  • Setiap sistem menyimpan semua file di dalam disk dan mengaturnya secara organisasi dalam 2 bagian. Pertama sistem dipecah ke dalam partisi. Pada setiap disk terdiri dari beberapa partisi, dimana partisi tersebut tersimpan file dan direktori. Setiap disk memiliki volume partisi yang berbeda. Kedua, di partisi tersimpan file dan direktori pada direktori decixe/tabel volume dari konten. Di direktori tersebut tersimpan informasi.
  • Informasi pada direktori: address, type, name, max length, current length, last modified date, last access date, protection information, owner ID
  • Operasi-operasi pada direktori: search file (mencari), create file (membuat), delete file (menghapus), list (mendaftar direktori), rename file (ubah nama file), traverse file (lintas sistem file)
  • Struktur organisasi direktori:
    • Keefektivitasan: agar bisa menempatkan file dengan cepat
    • Penamaan file: harus nyaman untuk user. Dua user bisa memiliki nama file yang sama. File yang sama bisa mempunyai beberapa nama.
  • Jenis-jenis Organisasi direktori:
    1. Direktori Satu Tingkat/Level
      • Terdiri dari satu direktori satu user
      • Permasalahan: pengelompokkan berdasarkan user & penamaan
    2. Direktori Dua Tingkat/Level
      • Terdapat dua direktori dengan tingkatan yang berbeda yang dapat memisahkan antar user, dimana bisa memiliki nama file yang sama pada 2 user.
      • Kelebihan: memiliki kapabilitas/keefektifisan dalam pencarian
      • Kekurangan: pengelompokkan belum dapat dilakukan
    3. Direktori berstruktur pohon/Tree
      • Kelebihan: pencarian lebih efektif dan efisien, dapat mengakses direktori dan subdirektori, bisa dikelompokkan, terdapat perintah khusus untuk menghapus dan membuat direktori, path dibagi menjadi 2 tipe yaitu absolut dan relatif.
    4. Direktori Acylic Graph
      • Perbedaan Direktori Tree dengan direktori Acylic Graph yaitu Direktori Acylic Graph dapat menggunakan direktori/subdirektori dan file yang digunakan secara bersama
      • Pada UNIX, direktori ini diimplementasikan dengan membuat entry baru yang disebut link yang diimplementasikan sebagai path (absolut/relatif).
    5. Direktori General Graph
      • Direktori ini meminimalisir adanya siklus dengan cara: link bertempat di file bukan subdirektori, sampah/garbage dikumpulkan, jika ada link baru maka lakukan algoritma penghapusan siklus (iya/tidak)

 

D. Mounting Sistem File

  • Sebelum di akses, sistem file harus di-mount
  • Jika terdapat sistem file yang belum di-mount, maka sistem file akan di-mount pada titik mount.

 

E. File Sharing

  • Pada sistem multi user, file sharing sangat diharapkan, hal ini dapat dilakukan melalui skema proteksi.
  • Sedangkah pada sistem terdistribusi, akan diimplementasikan dengan men-share lintas jaringan.
  • Salah satu contoh dari bentuk umum sharing file terdistribusi adalah Network File System (NFS)

 

F. Proteksi

  • Proteksi (Protection) harus dilakukan agar informasi/data pada sistem komputer dapat terhindar dari akses yang kurang benar.
  • Sedangkan reliability dilakukan agar informasi pada sistem terhindar dari kerusakan fisik (reliability). Biasanya dilakukan dengan duplikasi copy file dan beberapa sistem dapat melakukan dengan otomatis, misalnya jika terdapat sistem file yang terhapus, maka akan otomatis file tersebut akan diduplikasikan ke tape secara regular.
  • Proteksi dapat dilakukan dengan berbagai cara yaitu:
    1. Tipe akses
      • Kekurangan: file yang dibuat terbatas, tidak semua file yang akan diakses diperbolehkan tergantung beberapa faktor (misal: permintaan tipe akses).
      • Operasi-operasi yang disediakan:
        • Read file (membaca)
        • Write file (menulis)
        • Execute file (menjalankan file)
        • Append file (menambah isi file)
        • Delete file (menghapus)
      • Proteksi tersedia hanya pada fungsi level lebih rendah (spt operasi-operasi di atas). Maka dari itu, untuk fungsi level lebih tinggi (meng-copy. pemberian nama, mengubah file), diterapkan dengan sistem yang memakai sistem call/fungsi level lebih rendah.
      • Misal: untuk meng-copy file, maka memakai deretan read sehingga file dapat di-copy, dicetak, dll.
    2. Acces List dan Group
      • Penerapannya menggunakan akses identity-dependent (akses identifikasi user secara dependent), yaitu menghubungkan masing-masing file & direktori dengan access list yang menentukan nama user & tipe akses yang diizinkan untuk setiap user.
      • Masalah utama: ukuran dimana manajemen ruang harus diperhatikan dalam penempatan daftar user yang memiliki akses.
      • Pemecahan masalahnya, terdapat 3 klasifikasi user, yaitu:
        • Owner: user yang membuat file
        • Group: user yang diberikan akses untuk menggunakan file bersama-sama
        • Universe: semua user lain dalam sistem
      • Dalam penggunaannya lebih efektif, fungsi keanggotan user perlu diperhatikan. Misalnya dalam UNIX terdapat grup yang dibuat dan yang boleh memodifikasinya hanya menager (superuser).
    3. Proteksi pada UNIX
      • Proteksi dalam direktori sama dengan proteksi dalam file, yaitu: subdirektori menggunakan owner, grup, & universe sebagai 3 bit RWX.
      • Informasi yang terdapat pada file (dari kiri ke kanan):
        • Proteksi file/direktori
        • Jumlah link ke file
        • Nama pemiliki
        • Nama grup
        • Ukuran file (byte)
        • Tanggal membuat
        • Nama file

 

G. Sistem File pada Windows & Linux
Salah satu fungsi sistem file yaitu menjadi perantara sistem operasi dengan disk. Sistem operasi akan meminta sistem file untuk mengakses suatu file yang diinginkan oleh program. Kemudian, sistem file akan mencari lokasi dari file tersebut pada disk/penyimpanan. Setelah ditemukan, sistem file akan membacanya dan mengirimkannya pada sistem operasi sehingga file yang diminta bisa dibaca sesuai dengan permintaan program.

  1. Sistem File pada Windows
    • FAT (File Allocation Table)
      FAT=salah satu jenis sistem file pada Windows dimana dalam melakukan tugasnya, FAT menggunakan struktur tabel alokasi berkas. Beberapa versi FAT, yaitu:

      1. FAT12
        • Pertama kali digunakan pada SO MS-DOS dengan kapasitas 32 MB
        • Hanya digunakan pada penyimpanan floppy disk karena kapasitasnya kecil
        • Batas unit alokasi = 212/4096 buah ; dengan batas 12-bit (msg2)
      2. FAT16
        • Pertama kali digunakan pada MS-DOS 1981
        • Batas unit alokasi = 216/65536 buah ; dengan batas 16-bit (msg2)
        • Kapasitas sistem file = 4GB
        • Ukuran unit alokasi tergantung kapasitas harddisk yang akan diformat. Jika kurang dari 16 MB, maka menggunakan FAT12. Jika lebih, maka menggunakan FAT16.
        • Kelebihan: dapat digunakan hampir seluruh SO
        • Kekurangan: kapasitas jumlah cluster dalam partisi harddisk tetap ; tidak mendukung kontrol akses, enkripsi, kompresi dalam partisi.
      3. FAT32
        • Pertama kali digunakan pada Windows 95 OSR2
        • Batas unit alokasi = 232/4.294.967.296 buah ; dengan batas 32-bit (msg2) ; namun, yang dapat dialamatkan hanya 228
        • Kapasitas sistem file = 32 GB
        • Kelebihan: dapat menampung jumlah cluster yang lebih besar
        • Kekurangan: SO yang mengenal FAT32 terbatas
      4. FAT64/exFAT (extended FAT)
        • Pertama kali digunakan untuk perangkat2 benam Windows Embedded CE 6.0 & Windows Vista Service Pack 1
        • Batas unit alokasi = 264
        • Kelebihan : tersedia Free Space Bitmap (peningkatan performa dalam alokasi ruangan kosong & penghapusan) ; batas cluster 2255 sektor & batas implementasi 32 MB ; tersedia Access Control List (ACL) sama seperti NTFS
        • Kekurangan: tidak bisa diakses oleh Windows2 sebelum CE 6.0 & Vista SP1 ; tidak tersedia dalam bentuk open source ; status lisensi belum jelas ; tidak bisa menggunakan ReadyBoost milik Windows Vista
    • NTFS (New Technology File System)
      • Pertama kali digunakan pada Windows NT. Memiliki desain sederhana namun kemampuan lebih baik dibandingkan FAT. Beberapa versinya yaitu:
      • Versi NTFS:
        1. NTFS 1.0: dikenalkan saat Windows NT 3.1
        2. NTFS 1.1: dikenalkan saat Windows NT 3.5
        3. NTFS 1.2: dikenalkan saat Windows NT 4.0
        4. NTFS 2.0: tidak dirilis secara umum karena beberapa kendala, lalu dilongkap ke NTFS 3.0.
        5. NTFS 3.0: dikenalkan saat Windows 2000
        6. NTFS 3.1: dikenalkan saat Windows XP SP1 & Server 2003
      • Kelebihan: mendukung penamaan file dengan Unicode (16-bit) hingga 255 karakter ; mendukung hard link & symbolic link ; mendukung sistem data terenkripsi & kompresi secara transparan
      • Kekurangan: tidak bisa bekerja sama dengan SO lain dalam satu komputer
  2. Sistem File pada Linux
    • Ext 2 (2nd Extended)
      • Dikenalkan pada 1993
      • File data disimpan sebagai data blok ; data tersimpan dalam file, file tersimpan dalam direktori ; dalam direktori terdapat direktori (subdirektori) & file
      • Kelebihan: dapat memilih ukuran blok (1024-4096 bytes) ; mendukung file immutable (file yg tdk dpt dimodifikasi) & append-only (isi file hanya dapat ditambahkan pada akhir file)
      • Kekurangan: membutuhkan waktu yang lama saat shut down ; pd saat clean up, ext2 otomatis menjalankan utility pd booting selanjutnya
    • Ext 3 (3rd Extended)
      • Kelebihan fitur: journaling (mempersingkat waktu recorvery saat shut down) ; integritas data (dapat memilih tipe proteksi) ; mudah dilakukan migrasi ; kecepatan
      • Kekurangan: membutuhkan memori yang lebih & sistem lebih lambat saat I/O karena penambahan fitur journaling
    • Ext 4 (4th Extended)
      • Kelebihan: alokasi 48-bit blok (batas sistem file 1EiB ; batas file size 16 TB)

Computational Thinking, Scratch

COMPUTATIONAL THINKING, SCRATCH

 

A. Pengertian Ilmu Komputer

  • Ilmu komputer bagaikan proses dari pemecahan masalah.
  • Maksud dari pemecahan masalah adalah kita akan memasukkan beberapa input atau detail tentang masalah kita, lalu kita akan mendapatkan output berupa solusi dari masalah kita tersebut.
  • Untuk lebih detail, ilmu komputer itu sebagai kotak hitam diantara input dan output. Kotak hitam di sini berfungsi sebagai pengaplikasian input atau bagaimana cara kita mempresentasikan input kita agar dapat menyimpan dan bekerja melalui informasi dari input dengan cara standar.

 

B. Biner (Binary)

  • Salah satu bahasa yang dipahami komputer adalah biner (binary) yaaitu sistem angka yang hanya terdiri dari 2 angka saja yaitu 0 dan 1.
  • Biner ini digunakan untuk menyimpan data, untuk membuat sistem di handphone, laptop, dll.
  • Biner tidak memerlukan banyak simbol seperti simbol pada desimal yaitu angka 0-9 ataupun simbol unary seperti saat kita menghitung menggunakan satu tangan.
  • Dalam desimal/angka biasa, untuk mempresentasian suatu bilangan, memiliki pola berpikir tertentu yang menggunaan pangkat 10. Misalnya, untuk mempresentasikan bilangan 123, maka polanya yaitu:
    123 =  102 x 1 + 101 x 2 + 100 x 3
    Dimana, angka 3 menyimbolkan satuan, angka 2 sebagai puluhan, dan angka 1 sebagai ratusan. Setiap angka/digit tersebut, menggunaan pangkat 10 karena ada 10 kemungkinan angka/digit untuk setiap fungsinya (satuan, puluhan, ratusan, ribuan, dll).
  • Sedangkan pada biner, hanya terdapat 2 angka/digit saja, jadi menggunakan pangkat 2 untuk setiap fungsinya, misal:
    • 0 = 22 x 0 + 21 x 0 + 20 x 0  =  4 x 0 + 2 x 0 + 1 x 0  =  0
    • 1 = 22 x 0 + 21 x 0 + 20 x 1  =  4 x 0 + 2 x 0 + 1 x 0  =  1
    • 3 =  22 x 0 + 21 x 1 + 20 x 1  =  4 x 0 + 2 x 1 + 1 x 1  =  3
    • 8 =  23 x 1 + 22 x 0 + 21 x 0 + 20 x 0  =  8 x 1 + 4 x 0 + 2 x 0 + 1 x 0  =  0
  • Sistem biner sangat masuk akal untuk komputer karena komputer dapat menyala karena ada listrik yang bisa saja mati/nyala dan di dalam komputer terdapat jutaan atau milyaran saklar yang disebut transistor. Jadi, untuk melambangkan suatu bilangan, maka terdapat beberapa saklar yang dialiri listrik pada beberapa bit (binary digit), seperti halnya pola perhitungan pada binary tadi, digit 1 sebagai nyala dan digit 0 sebagai mati.
  • Satu byte terdiri dari 8 bit.

 

C. Representing letters, emoji, character, pictures, video, etc.

  • Huruf mulai dari A diwakilkan dengan biner 65 (01000001), B diwakilkan dengan 66, dst. Representing huruf ini sesuai dengan ASCII (American Standard for Information Interchange) yang terdiri dari 8 bit. Selain huruf, ASCII juga mewakili karakter grafis seperti tanda seru (!) diwakili dengan biner 33 (00100001), dan simbol Yunani.
  • Sedangkan emoji atau simbol dan karakter lain diwakilkan dengan Unicode yang memiliki digit lebih banyak dibandingkan ASCII. Seperti halnya emoji “tears of joy” (😂) diwakili dengan bilangan 128514 (11111011000000010).
  • Sebuah gambar terdiri dari banyak pixel (titik persegi yang lebih kecil) dan masing-masing pixel memiliki warnanya masing-masing. Untuk menampilkan sebuah gambar, pixel-pixel ini menggunakan sistem RGB (Red Green Blue). Dari tiga warna tersebut, dapat menghasilkan jutaan warna dengan mencampur sesuai dengan proporsi. Red diwakilkan 72, green diwakilkan 73, blue diwakilkan 33.
  • Untuk represent video, maka sama saja dengan menampilkan banyak sekali gambar dengan pose yang berbeda per detik.
  • Untuk mewakilkan musik maka terdapat 3 unsur yaitu nada, durasi, dan volume.

 

D. Algoritma

  • Kita sudah membahas bagaimana mempresentasikan input dan output, sekarang kotak hitam itu adalah algoritma. Algoritma adalah problem solving langkah demi langkah atau proses yang dijabarkan langkah per langkah untuk menyelesaikan suatu masalah.
  • Misalnya bagaimana car akita mencari kontak Mike Smith di buku telepon dengan abjad yang sudah terurut?
    1. Mencari Mike Smith halaman demi halaman dengan membolak-balikan satu halaman setiap kali hingga menemukan Mike Smith=> Itu akan teliti tetapi membutuhkan waktu yang lama.
    2. Mencari Mike Smith dengan membalikkan 2 atau lebih halaman setiap kali=> Itu lebih cepat, tetapi tidak teliti dan mungkin saja akan kontak Mike Smith akan terlewat.
    3. Buka buku telepon ke tengah, apakah huruf M lebih dekat dengan A/Z? Pilih salah satu bagian dimana S lebih dekat yaitu Z, lalu buang bagian A. Lalu bagi 2 lagi dan lakukan hal yang sama, hingga ketemulah kontak Mike Smith=> cara lebih efektif
  • Keefektifitasan problem solving sangat diperhatikan dalam algoritma supaya dapat memecahkan masalah dengan waktu paling sedikit. Dari masalah sebelumnya, efektivitas solving problem-nya, yaitu:

    n untuk problem solving pertama, n/2 untuk problem solving kedua, dan log n untuk problem solving ketiga. Ini dapat dilihat bahwa problem solving ketiga lebih efektif karena waktu yang dibutuhkan tidak terlalu meningkat terlalu tajam apabila ukuran dari masalahnya bertambah misalnya jumlah halaman bertambah.

 

E. Pseudocode (Kode Semu)

  • Pseudocode adalah sebuah syntax informal yang lebih spesifik lagi dari bahasa yang kita gunakan yang akan mewakilkan algoritma kita.
  • Seperti problem yang dibahas sebelumnya, pseudocode-nya yaitu:
  • Dari pseudocode tersebut terdiri dari:
    • Function: berisi kata kerja atau aksi (pick up, open to, look at, call, quit)
    • Condition: cabang yang memiliki instruksi yang berbeda pada setiap kondisi (if, else if, else)
    • Boolean expression: ekspresi yang menanyakan benar atau salah
    • Loops: insturksi melingkar yang terus berulang-ulang

 

F. Scratch

  • Jenis-jenis konsep pada bahasa pemograman:
    • Function: berisi kata kerja atau aksi
    • Condition: cabang yang memiliki instruksi yang berbeda pada setiap kondisi
    • Boolean expression: ekspresi yang menanyakan benar/salah atau ya/tidak
    • Loops: instruksi melingkar yang terus berulang-ulang
    • Variabel
    • Threads
    • Event
  • Scratch = bahasa pemograman komputer dimana akan menyeret dan menaruh blok-blok yang seperti potongan puzzle langkah demi langkah dan saling menyambung sehingga komputer dapat memahami apa yang diinstruksikan.
  • Sumber Scrath: scratch.mit.edu
  • Tampilan scratch
  • Pada tampilan paling kiri, terdapat konsep-konsep yang berfungsi untuk menjalankan instruksi. Di bagian tengah tampilan berfungsi sebagai tempat untuk menaruh potongan puzzle dan menyambungkannya. Di bagian paling kanan tempat tampilan outputnya.
  • Contoh pembuatan program pada Scratch:
  • Dari contoh di atas, dapat dilihat bahwa potongan-potongan puzzle tersebut seperti kotak hitam untuk presenting input dan output.


    Ini berarti inputnya adalah “What’s yout name?” dari potongan puzzle ask pada komputer dan outputnya adalah answer, sedangkan potongan puzzle ask ini sebagai kotak hitam.
  • Pada Scratch ini, terdapat instruksi-instruksi yang memungkinkan anda untuk membuat program berisikan kata-kata, menghitung, suara, bahkan menggerakan sprite (avatar) dengan pointer pada komputer anda.

Memori Virtual

VIRTUAL MEMORY (Memori Virtual)

 

 A. Background (Latar Belakang)

  • Virtual Memori= pemisahan memori fisik dengan memori logis
  • Tujuan utama dari virtual memori ini yaitu membuat kapasitas memori lebih besar, dengan meminimalisir I/O, meminimalisir penggunaan memori fisik, memperbanyak jumlah user, dan meningkatkan respon
  • Dalam penerapannya, menggunakan teknik: demand paging & demand segmentation
  • Perbedaan memori virtual dengan memori fisik
  • Ruang Alamat Virtual/Virtual-address Space (VAS)
    • Ruangan antara stack dan heap disebut lubang
    • Stack pada alamat logis akan mulai dari max., lalu bertumbuh ke bawah sedangkan heap akan tumbuh ke atas. Ruangan ini akan digunakan secara maksimal, sehingga memori fisik tidak perlu digunakan. Lalu sistem akan membagikan atau memetakan ke alamat virtual.

B. Demand Paging (Halaman Permintaan)

  • Perpaduan antara swapping (menukar) dan paging (menyimpan ke memori) artinya page yang dibawa atau dikirim ke memori adalah page yang dibutuhkan saja.
  • Keuntungan: meminimalisir I/O; meminimalisir penggunaan memori; respon cepat; lebih banyak user yang dapat dijangkau.
  • Teknik –> Lazy swapper: jangan pernah swap page ke memori jika betul-betul diperlukan
    –> Pager: swapper (melakukan manipulasi seluruh proses) yang berhubungan dengan page.
  • Pager hanya berfungsi membawa pages ke memori. Untuk menerapkan demand paging, maka diperlukan fungsionalitas MMU baru, supaya bisa mendeteksi dan memilih page untuk dibawa ke memori.
  • Valid-Invalid Bit= hardware yang diperlukan untuk mengetahui bahwa page sudah berada di memori atau belum.
    • v: page ada di memori
    • i: page tidak ada di memori
    • page fault: jika page-nya i atau invalid, lalu page akan ditrap oleh SO
    • Cara menangani Page fault:
      • Saat page sedang ditrap oleh SO, SO akan melihat tabel lain untuk menentukan valid-invalid.
      • Jika page tersebut valid, maka akan diswapping ke free frame di memori
      • Lalu program ulang tabel pages supaya status page tersebut bertanda “v” yang artinya sudah berada di memori
      • Restart instruksi
  • Komponen hardware yang dibuthkan untuk Demand Paging:
    • Tabel Page (valid-invalid bit)
    • Memori sekunder (untuk melakukan swapping dan menjadi tempat penampungan memori sementara)
    • Instruksi restart
  • Kegiatan utama:
    • Merespon gangguan yang terjadi
    • Membaca page yang akan diswapping ke memori
    • Restart proses
  • Nilai Page Fault –> 01
    • Tidak ada page fault –> p = 0
    • Seluruh referensi adalah fault –> p = 1
  • Effective Access Time (EAT)
    EAT = (1 – p) x akses memori + p (page fault overhead + swap page out + swap page in)

    • Ex: akses memori: 100 nano detik
      Rata-rata page fault: 4 ms
      EAT      = (1 – p) x 100 + p (4.000.000)
      = 100 – 100p + 4.000.000p
    •                      = 100 + p x 3.999.900
    • Artinya, jika terdapat 1 dari 1000 akses menyebabkan page fault, maka EAT-nya
      adalah: p = 1 : 1000 = 0,001
      EAT      = 100 + 0,001 x 3.999.900
      = 4,1 mikro detik

 

C. Copy-on-Write (COW)

  • Teknik yang efisien dalam mengsalin karena hanya page yang dimodifikasi yang disalin.
  • Pada awalnya, terdapat beberapa proses yang berbagi pada page yang sama, lalu salah satu proses memodifikasi page tersebut, maka hanya page tersebut yang akan disalin sedangkan page yang lain tidak akan disalin. Lalu page yang dimodifikasi tsb dialokasikan ke free frame.
  • Menggunakan teknik zero-fill-on-demand pages
  • Jika tidak ada free frame, maka menggunakan page replacement, artinya keluarkan page yang sedang tidak digunakan, lalu isi page tersebut.

 

D. Page Replacement (Penggantian Halaman)

  • Proses:
    • Setelah proses memodifikasi page, maka akan terbentuk salinan page dari page yang dimodifikasi tersebut, lalu pindahkan dulu page salinan tersebut pada disk.
    • Lalu cari free frame: jika ada, maka gunakan; jika tidak ada, maka gunakan metode algoritma page replacement untuk mencari frame yang tidak terpakai untuk dikorbankan.
    • Swapping page salinan ke free frame tersebut, lalu isi/tulis, serta update tabel page dan tabel frame
    • Restart instruksi
    • Keuntungan: mengurangi alokasi berlebihan yang terjadi karena layanan page fault, meluangkan lebih banyak kapasitas pada memori virtual
    • Ada dua algoritma yang perlu diperhatikan pada page replacement yaitu frame dan page:
      –> page: nilai page fault serendah mungkin
    • –> frame: frame mana yang harus digantikan, banyaknya frame yang digunakan dalam satu proses
  • Algoritma Page Replacement:
    1. Algoritma First-In-First-Out (FIFO)
      • Page yang paling lama tinggal di frame atau page yang dialokasikan lebih awal menjadi page yang di-replace.
      • Anomali Belady: lebih banyak frame maka nilai page fault-nya lebih besar
    2. Algoritma Optimal
      • Page yang tidak akan digunakan dalam jangka waktu yang lama akan di-replace.
      • Algoritma ini memerlukan analisis yang cukup sulit karena memerlukan beberapa aspek yang perlu dipertimbangkan untuk me-replace suatu page
      • Algoritma ini memungkinkan untuk mempunyai nilai page fault terendah
      • Algoritma ini digunakan untuk menunjukkan seberapa baik algoritma yang dilakukan oleh setiap individu
    3. Algoritma Least Recently Used (LRU)
      • Page yang paling lama tidak di-replace atau bukan baru saja digunakan/di-replace akan di-replace
      • LRU lebih baik dari FIFO lebih buruk dari Optimal
      • Gabungan dari FIFO dengan Optimal
      • Cara pengimplementasian LRU:
        • Dengan Counter: berdasarkan waktu pada entry page, memerlukan pencarian pada tabel
        • Dengan Stack: suatu page yang direferensi di pindah ke atas, tidak menggunakan pencarian, memerlukan biaya yang besar
    4. Algoritma Second Chance
      • FIFO + bit referensi dari hardware
      • Menggunakan clock replacement
      • Page akan di-replace jika bit referensi-nya 0, jika bit referensi-nya 1, maka atur supaya bit referensi 0, lalu tinggalkan page di memori, lalu di-replace
      • Kondisi (referensi, modifikasi)
        • (0,0): pas untuk di-replace
        • (0,1): tidak baru digunakan, tetapi dimodifikasi
        • (1,0): baru digunakan, tetapi tidak dimodifikasi
        • (1,1): baru digunakan dan baru dimodifikasi

 

E. Allocation of Frames (Alokasi Frame)

  • Tujuan: mengorganisir pemakaian frame pada setiap proses agar setiap proses dapat berjalan dengan efektif, misalnya setiap proses membutuhkan minimal frame agar proses dapat berjalan.
  • Skema utama alokasi frame:
    1. Alokasi Fix (Fixed Allocation)
      • Alokasi Sama (Equal Allocation): pembagian frame pada setiap proses sama rata, misal –> terdapat 200 frame dan 10 proses, maka masing-masing proses mendapatkan 20 frame
      • Alokasi Proporsional (Proportional Allocation): pembagian proses berdasarkan ukuran masing-masing proses. Misal:
        si1 (ukuran proses p1) = 20   ;   si2 = 180
        S (jumlah semua si) = 20 + 180 = 200
        m (total frame)= 100
        a1 (alokasi p1) = si1/S x m = 20/200×100 = 10   ;   a2 = 180/200×100=90
    2. Alokasi Prioritas (Priority Allocation)
      • Menggunakan alokasi proporsional, tetapi lebih sering menggunakan prioritas proses dibandingkan ukuran proses
  • Alokasi Global & Local
    1. Alokasi Global: suatu proses dapat memilih frame dari proses lain untuk di-replace
    2. Alokasi Lokal: suatu proses hanya dapat memilih frame dari proses dirinya sendiri untuk di-replace

 

F. Thrashing (Labrakan)

  • Trashing = proses melakukan paging yang sangat tinggi dibandingkan dengan swap in/out (eksekusi) dikarenakan proses tidak cukup memiliki page sehingga menyebabkan page fault.
  • Trashing juga dapat terjadi karena ukuran dari alokasi lokal lebih besar dibandingkan total ukuran memori
  • Akibat: kerja CPU rendah, SO akan merespon untuk meningkatkan multiprogramming, sistem ketambahan proses-proses lain
  • Working-set model
    • Δ= working set/nomor fix dari referensi page
    • WSSi (wroing set of process Pi) = total nomor referensi page
    • Δ terlalu kecil = tidak dapat menjangkau seluruh lokasi
    • Δ terlalu besar = menjangkau beberapa lokasi
    • Δ tak terbatas = menjangkau seluruh program
    • D = jumlah WSSi/total demand frames
    • D > m = thrashing, maka harus ditunda atau swap proses

 

G. Memory-Mapped Files (File Pemetaan Memori)

  • File I/O sudah seperti memori akses yang rutin dengan memecahkan blok disk ke memori page.
  • Menggunakan teknik demand paging
  • Memory Mapped Files lebih sederhana dan cepat dibandingkan COW. Selain itu, Memory Mapped Files dapat dibaca dan ditulis, serta dishare, sedangkan COW hanya bisa dibaca dan ditulis, tidak dapat di-share

 

H. Allocating Kernel Memory (Alokasi Memori Kernel)

  • Sistem buddy: alokasi memori dari ukuran pas dari fisik page
  • Memori menggunakan 2 kekuatan allocator dalam pengalokasian, misal 256KB tersedia, kernel meminta 21KB. Lalu dibagi dua, dengan masing-masing 128KB. Setelah itu, salah satu dari kedua tersebut dibagi dua lagi menjadi masing-masing 64KB, lalu salah satu dibagi lagi menjadi 32KB
  • Slab Allocator
    • Cache terdiri dari 1 atau lebih slab, lalu diisi oleh objek atau data struktur
    • Slab free: cache diciptakan, atau tandanya slab kosong
    • Full: semua slab sedang digunakan
    • Partial (sebagian): ada yang sudah digunakan dan ada yang kosong
    • Saat struktur data tersimpan, status objek digunakan
    • Jika objek di suatu slab penuh, maka objek yang lain akan dialokasikan ke slab yang kosong. Jika tidak ada slab yang kosong, maka slab baru yang akan dialokasikan.

 

I. Other Considerations (Pertimbangan Lainnya)

  • Prepaging
    • Menyiapkan page yang dibutuhkan sebelum direferensi untuk mengurangi lonjakan nilai dari page faults
    • Ada resiko page yang sudah disiapkan tidak dipakai sehingga I/O dan memori akan terbuang sia-sia.
    • s: page yang disiapkan, a: page yang terpakai
    • s (1-a), if a near zero, maka kehilangan prepaging
  • Page size
    • Hal-hal yang perlu diperhatikan: fragmentasi, I/O overhead, ukuran tabel page, lokalitas, resolusi, nomor dari page faults, ukuran dan efektivitas TLB
    • Selalu “2“ sekitar 4096 byte – 4.194.304 byte
  • Jangkauan TLB
    • TLB Reach = ukuran TLB x ukuran page
    • Jika tidak ada lonjakan nilai page faults, worked set disimpan di TLB
    • Ukuran page perlu diperhatikan karena tidak semua apk memerlukan kapasitas yang besar, jika ukuran page-nya terlalu besar maka akan terjadi lonjakan fragmentasi
  • I/O interlock
    • Beberapa page perlu di-lock supaya tidak terkena swap saat proses lain sedang berjalan

 

J. Operating-System Examples (Contoh Sistem Operasi)

  • Windows
    • Teknik demand paging dengan pengelompokkan
    • Terdapat work set minimum dan maksimum
    • Pemangkasan work set dilakukan untuk mengembalikan jumlah memori bebas karena proses telah melebihi batas minimum page
  • Solaris
    • Untuk menetapkan proses yang salah, free page perlu dipertahankan, istilah di page scanner:
      • Lotsfree: menunjukkan memori bebas menuju page start
      • Desfree: paging ditingkatkan
      • Minfree: swap
      • Paging to pageout
      • Pageout memakai algoritma jam yang dimodifikasi
      • Scanrate: kecepatan pemindaian
      • Menggunakan paging prioritas

Manajemen Memori

MANAJEMEN MEMORI

  • Manajemen memori adalah mengelola penggunaan memori pada saat komputer aktif dan menjalankan proses-proses.
  • Fungsi manajemen memori:
    • Mengelola informasi memori yang dipakai dan tidak terpakai
    • Mengalokasikan memori ke proses yang memerlukan
    • Mengatur memori dari proses telah selesai
    • Mengelola swapping atau paging antara nenori utama dan disk
    • Meningkatkan kinerja CPU terutama dalam kecepatan akses CPU terhadap data dan instruksi
    • Meningkatkan efisiensi pemakaian memori yang terbatas
  • Jenis-jenis memori:
    • Register
    • Memori Cache
    • Memori utama: ROM, RAM
    • Memori sekunder: hdd, floppy disk
    • (semakin ke atas semakin cepat, kapasitas kecil, dan harga persatuan byte makin mahal.)
  • Pengalamatan memori:
    1. Pengalamatan secara fisik (mutlak)
      • Alamat yang ditulis pada kode instruksi program hasil kompilasi merupakan alamat fisik memori utama yang sesungguhnya atau nomornya mutlak/sama
      • Tidak membutuhkan translasi alamat memori
    2. Pengalamatan secara Relative
      • Digunakan pada sistem yang menggunakan alokasi memori berurut dimana image proses harus terletak pada satu area memori utuh
      • Membutuhkan translasi alamat memori pada saat eksekusi
      • Translasi alamat memori -> MMU (Memory Management Unit)
    3. Pengalamatan secara Logika
      • Mmerlukan translasi alamat yang dilakukan saat eksekusi proses
      • Kelebihan: relokasi program dapat dilakukan secara fleksibel, kapasitas lebih besar, image proses dapat dialokasikan secara parsial dan tersebar pada memori uatama
      • Sistem di logika di bagi dua: paging dan segmentasi
  • Swapping
    • Swapping = pengalihan sementara suatu proses dari memori ke suatu tempat penyimpanan, lalu kembali lagi ke memori untuk melanjutkan proses tersebut.
    • Pembagian berdasarkan keberadaan swapping:
      • Manajemen tanpa swapping
      • Manajemen dengan swapping
  • Monoprogramming
    • Monoprogramming = hanya ada satu proses pada satu waktu dan seluruh sumber daya sepenuhnya dikuasi proses yang sedang berjalan.
    • Program dimuatkan seluruhnya ke memori dari disk/type
    • Alokasi memori dilakukan secara berurutan
    • Memori utama: SO di RAM, Program pemakai di RAM, Memori tidak dipakai
  • Multiprogramming
    • Multiprogramming = banyak proses pada satu waktu di memori utama.
  • Partisi = metode yang digunakan untuk membagi hardisk pada komputer agar proses lebih efektif
  • Partisi statis
    • Pembagian berdasarkan ukuran:
      1. Partisi berukuran sama = ukuran semua partisi sama atau kurang, lalu dimasukkan ke sembarang partisi tersedia
        • Kelemahan: ukuran partisi yang lebih besar tidak dapat dijalankan, maka harus mempersiapkan overlay (program dipecah menjadi beberapa bagian yang dapat dimuat ke memori) dan so yang mendukung swapping. Bila ukurannya lebih kecil, maka akan ada ruang yang tidak dipakai sehingga menyebabkan pemborosan memori (fragmentasi internal)
        • Solusi: membuat partisi tetap dengan ukuran yang berbeda
      2. Partisi berukuran berbeda = ukuran semua partisi berbeda
    • Fragmentasi = pemborosan memori yang terjadi pada setiap organisasi penyimpanan
      • Internal = proses tidak mengisi penuh partisi yang telah ditetapkan untuk proses
      • Eksternal = partisi tidak dapat digunakan karena ukuran partisi lebih kecil dibandingkan ukuran proses yang menunggu.
  • Partisi Dinamis
    • Jumlah, lokasi, dan ukuran proses di memori dapat beragam sepanjang waktu, proses yang akan masuk ke memori akan sesuai dengan prosesny
  • Strategi alokasi memori:
    1. Algoritma First to First
      • Dimulai dari awal dan akan berhenti jika ditemukan lokasi pertama yang cukup besar untuk ditempati proses
      • Partisi kosong: 4kb, 3kb, 2kb, 6kb
      • Data ukuran 3kb datang, maka akan menempati partisi ukurun 4k
    2. Algoritma Next-fit
      • Tidak dimulai dari awal, tetapi dimulai dari lokasi terakhir kali menemukan segmen yang cocok, akan berhenti jika ditemukan lokasi pertama yang cukup besar sesuain proses
      • Partisi kosong: 4kb, 3kb, 2kb, 6kb
      • Data ukuran 3kb datang, maka akan menempati partisi ukurun 3kb
    3. Algoritma Wort Fit
      • Dimulai dari awal dan berhenti di lokasi yang paling besar yang sesuai proses
      • Partisi kosong: 4kb, 3kb, 2kb, 6kb
      • Data ukuran 3kb datang, maka akan menempati partisi ukurun 6kb
    4. Algoritma Best-fit
      • Dimulai dari awal dan berhenti di lokasi terkecil pertama sesuai proses
      • Partisi kosong: 4kb, 3kb, 2kb, 6kb
      • Data ukuran 3kb datang, maka akan menempati partisi ukurun 3kb