os211

#W05

TOP 10 LINKS

  1. A quick dive into Virtual Memory
    Video ini membahas definisi serta konsep dari virtual memory secara singkat. Ketika kita membahas virtual memory, konsep apa yang pertama kali kepikiran di otak? Kalau dari saya, yang saya pikirkan yaitu virtual memory merupakan sebuah ilusi, hence “virtual”. Dan memang virtual memory bisa dianggap sebagai sebuah ilusi. Konsep virtual memory ini berangkat dari permasalahan yang dialami komputer ketika mencoba untuk mengakses RAM lebih dari yang dimiliki komputer tersebut. Virtual memory membantu untuk membuat layer “indirection” atau mapping, yang dapat mengarahkan data ke tempat lain (misalnya harddisk) ketika RAM penuh. Menurut saya konsep virtual memory dimana komputer seolah-olah dibuat mempercayai ilusi bahwa RAM yang dimiliki komputer tersebut unlimited menarik. Dengan adanya Virtual Memory, komputer dapat menggunakan RAM secara lebih fleksibel.

  2. Table of process? What the heck is that?
    Forum QnA singkat ini membahas mengenai definisi dari process table. Table of process (atau bisa disebut juga process table) merupakan sebuah struktur data pada RAM yang memberitahukan kita informasi mengenai process / aktivitas apa saja yang sedang terjadi / dilakukan pada sistem operasi kita. Pernahkah kalian mencoba untuk akses local host 8080 (ataupun port lainnya) lalu mendapatkan error message “port XXXX already in use”? Waktu saya mengerjakan tutorial mata kuliah lain, saya sering mendapatkan pesan ini. Setelah GSGS, ternyata port tidak bisa diakses karena ada dikarenakan sudah ada sebuah process lain yang mengakses port tersebut. Agar saya bisa menggunakan port XXXX tersebut, saya harus “kill” process yang menghalangi saya dalam menggunakan port tersebut. Saya melakukannya melalui command netstat, dan dari command tersebut saya bisa melihat process table beserta informasi lainnya seperti PID (id dari process) dll. Saya menemukan QnA tersebut menarik karena saya jadi flashback waktu pertama kali tahu mengenai process table.

  3. Memory allocation, a snippet
    Artikel ini membahas mengenai memory allocation pada Linux. Dari artikel ini, saya jadi tahu ada yang namanya kmalloc(), yaitu sebuah function untuk allocate memory pada kernel. Saya juga menjadi tahu bahw ada 5 cara untuk allocate memory pada kernel (3 cara melalui dynamic allocation, 2 cara melalui static allocation). Sebenernya isi dari artikel ini masih rada sulit buat saya cerna secara mendalam, namun bagi yang sudah mahir dengan Linux dan ingin mengetahui apa saja yang perlu diperhatikan sebelum menulis Linux kernel code, dipersilahkan untuk mengecek artikel tersebut.

  4. Working-set model
    Website ini membahas sedikit mengenai working-set model. Working-set model berangkat dari konsep locality, dan berhubungan dengan frames (yaitu memori yang dibagi rata menjadi beberapa bagian). Yang saya tangkap dari website ini yaitu working-set model merupakan salah satu method untuk handle thrashing.

  5. All about NUMA and its twins, UMA and COMA
    Website ini menjelaskan mengenai NUMA dan UMA. Multiprocessors dapat dikategorikan menjadi 3 shared-memory model, yaitu NUMA (Non-uniform Memory Access), UMA (Uniform Memory Access) dan COMA (Cache-only Memory Access). UMA menggunakan Single memory controller sedangkan NUMA menggunakan Different memory controller.

  6. Thrashing (no it’s not a verb)
    Website ini membahas mengenai memory thrashing pada OS. Awalnya saya kira thrashing merupakan sebuah aktivitas yang “gone wild” pada OS. Ternyata saya salah besar. Thrashing adalah kejadian dimana sistem melakukan swapping pages ataupun operasi paging lainnya pada virtual memory pada rate yang tinggi. Operasi paging dan/atau swapping tersebut dilakukan hingga menjadi overuse dan process tidak dapat fokus untuk execute task-nya. Sistem tersebut menjadi sangat lambat (atau bahkan bisa sampai crash). Memory thrashing terjadi ketika memory lebih banyak daripada physical memory dan dibutuhkan, namun tidak ada.

  7. Kernel memory and how to allocate it
    Website ini membahas mengenai allocating kernel memory. Untuk dapat mengatur free memory yang akan di assign ke kernel process, kita dapat menggunakan 2 strategi, yaitu slab allocation dan buddy system allocation. Buddy system mengalokasikan memory dari fixed-size pages. Sedangkan slab merupakan cache yang berisikan commonly-used objects yang sudah berada pada tahap inisialisasi sehingga dapat digunakan kapanpun oleh kernel. Slab terdiri dari satu atau lebih page, dan cache (pada slab allocation) terdiri dari satu atau lebih slab.

  8. Pages and frames in OS
    Website ini membahas menjelaskan mengenai pages dan frames pada OS. Dari website ini saya mendapatkan Aha! moment pertama saya pada materi virtual memory. Saya jadi ngeh dan baru tahu bahwa ada yang namanya pages dan frames (sebelumnya saya kira keduanya berhubungan dengan GUI namun saya salah…). Frames merupakan main memory yang dibagi rata menjadi beberapa bagian, sedangkan page adalah process yang dibagi menjadi beberapa fragmen kecil. Pengetahuan ini merupakan basics yang perlu diketahui sebelum terjun bebas ke bab virtual memory (dikarenakan kedua istilah tersebut sering muncul).

  9. Virtual memory isn’t really what you think it is
    Website ini menjelaskan mengenai kesalahpahaman/miskonsepsi yang sering terjadi tentang virtual memory. Saya menemukan website ini menarik karena disini dijelaskan apa itu virtual memory sebenarnya. Seringkali saya suka menyimpulkan definisi suatu konsep setelah membacanya sekilas, dan hal itu terjadi ketika saya mencoba untuk memahami virtual memory. Memang secara sekilas virtual memory merupakan suatu cara untuk extend memory, tapi hal tersebut kurang tepat. Virtual memory bukan/kurang tepat bila dianggap sebagai suatu cara untuk extend RAM dengan menggunakan hard drive sebagai sistem memori tambahan yang lambat (dan hard drive baru akan digunakan ketika sistem kehabisan memori). Hal tersebut justru disebut dengan swap space.

  10. Pages + Frames = Page tables
    Website ini membahas mengenai page tables. Saya menemukan judul website tersebut menarik, sehingga saya GSGS mengenai page tables. Saya baru tahu bahwa salah satu tugas dari OS adalah untuk melacak virtual page mana yang menunjuk ke physical frame mana. Informasi tersebut disimpan dalam suatu page table. Informasi tersebut penting ketika process sedang request memory.