os212

LINKS

1. Regex 101

Walaupun bisa lewat python atau bahasa lain, testing regex bisa juga dilakukan melalui web ini. Web ini sangat membantu untuk bereksperimen dengan regex.

2. VIM 101

Pengguna VSCode sejati pasti sering mengalami masalah saat menggunakan vim, dan ini adalah jawaban dari masalah-masalah tersebut.

3. Linux File System/Structure

Struktur file di sistem operasi linux bisa jadi membingungkan bagi pemula seperti saya. Kebiasaan menggunakan windows sejak lahir kadang menimbulkan error dan kebingungan saat menggunakannya. Video tersebut dapat membantu menyelesaikan masalah tersebut.

4. Best Linux Distro

Saat mengetahui terdapat berbagai distro di linux, pasti akan sangat membingungkan bagi orang-orang yang baru mengenalnya. Di laman ini terdapat penjelasan serta kekurangan kelebihan dari beberapa distro yang bisa dicoba untuk pemula.

5. Linux Commands

Panik saat QUIZ kemarin? Laman ini dapat menjadi penyelamatnya!

6. File Permissions & Atrributes

When executing ls -al, we will see some random alphabets along with many dashes around them. This kind of thing intrigue me and I ended up in this site which cover this topic pretty clear. It also tells us how to modify those alphabets (which also means modifying file permission).

7. Structures of Directory in Operating Systems

I read this ‘Three-Structured Directories’ from the course’s material but can’t find any article about it. I guess there might be typo. Anyway, this short article will give us a better understanding about directory structure in operating system. It also comes with some visualization to give us a clearer picture.

8. Filesystem Hierarchy Standard

It’s quite frustrating isn’t it for us, windows user, when we don’t see things like C:, D:, etc. Linux has its own “unusual” directories that can be overwhelming for beginner like me. What makes it more confusing is, they say different Linux distros can have their own unique directory. So here comes a help for us to understand about this Linux filesystem standard.

9. File Allocation Methods

I’m sure we’ve heard this “contiguous” word when we learn about Linked LIst in the data structure and algorithm class. Now, we will dive deeper about it and this article will be our helper. Again, geeksforgeeks always has a great picture that really helps us, the reader.

10. Directory Implementation

Woah, this one’s also related to what we’ve learned in the data structure and algorithm class. This site explained it concisely and I think it’s a good starting point for us to understand more about this topic.

11. File Systems Explained

I personally don’t really understand about this file systems stuff since it works nicely without needing me to know how it works. But here comes this guy who explained what a file system does in just 5 minutes. He also gave some simple comparisons of those file systems for us.

12. Free Space Management

What this site is trying to tell us about is of course the free space management itself. It’s a pretty short article and they use some bullet points to write the advantages and disadvantages of each free space management technique.

13. Little or Big Endian Machine?

Remember these words when we’re taking the Introduction to Computer Organization class? Yea, Operating System is is the continuation of that class, so we’re facing those words again here. I believe some of us might be surprised with the morning pop quiz that asked whether our machine is using Little Endian or Big Endian. So here comes the answer for that!

14. Bit, Byte, Nibble?

As a programmer, we should know the units we’re playing with. These unit mainly tell us about the capacity of some standard data storage system or communication channel. The most commonly used units are the bit and byte. Of course there are so many other units, and you can see it on this site.

15. Memory Management Unit

A memory management unit is a hardware that handles virtual memory and caching operations. It’s usually located within the computer’s central processing unit (CPU). Want to know more about this MMU? You can check this page.

16. Swap Memory in Linux

When I was setting virtual operating system, there was this swap memory thing that neither I nor my friends do understand. Turns out, swap memory is a very important part of our computer, that is used whenever our RAM runs out of memory. This article written by Karim Budzar will give you a clearer understanding of it.

17. Memory Allocation: First, Best, Worst Fit Allocation Strategy

So many strategies about memory allocation out there, even it’s more than I can chew. But this webpage gives us a brief explanation about some of them in a nice way. Not only those 3 I mentioned in the title, but it also tells us about Buddy’s system and Next fit strategy.

18. Parameter Passing Techniques in C

In C, there are different ways in which parameter data is passed into a functions. Some of them that might be familiar to us are passing by value and passing by reference. For those of you who are still confused about the difference between the two, or want to know more about other parameter passing techniques, go check this page.

19. C Pointers

One of the hardest topics that come when you’re learning C is pointers. It’s a relatively old concept that doesn’t exist in many newer programming languages (as far as I know), or maybe it’s just rarely used. I hope this site can help you in understanding pointers with some illustrations they displayed.

20. Logical and Physical Address

Logical and physical addresses are basically address. So what are the differences between them? Go and find out on this site which I personally think serves the information neatly and makes it easy to understand. It’s also really short and comes with some pictures.

21. Page Table

Page table simply is a data structure that maps the page number referenced by the CPU. On this site, you’ll learn about the page table itself and its entry. They explained it with some bullets so it’ll be easier for us to grasp the information.

22. C in a Nutshell

This week’s topic is about C, and I believe that there are already so many sources on the internet that give us information about it. But I have friends who still think that nothing can replace a book. So here is a book about C you can rely on.

23. Malloc di C

Halaman ini menjelaskan tentang apa itu memory allocation beserta dengan 2 jenisnya yaitu static memory allocation dan dynamic memory allocation. Selain itu, dibahas juga beberapa hal yang harus diperhatikan saat menggunakan memory allocation. Laman ini cukup singkat dan to the point, disertai dengan gambar, serta mencantumkan joke di dalamnya.

24. Cara untuk Meng-handle Thrashing

Pembahasan tentang thrashing diulas cukup dalam, mulai dari definisi dan 2 teknik untuk mengatasinya. Bahasa yang digunakan cukup mudah dimengerti dan terdapat gambar juga untuk mempermudah kita dalam memahaminya.

25. Physical Vs Virtual Memory

Sesuai dengan judulnya, laman web ini membahas tentang perbedaan physical dan virtual memory. Sebelum itu, tentunya dibahas juga mengenai apa itu physical memory dan virtual memory itu sendiri. Perbandingan yang dijabarkan di laman ini disajikan dengan side-to-side sehingga mudah dipahami. Selain itu, terdapat juga beberapa ilustrasi di dalamnya.

26. Apa itu Kernel?

Video 10 menit ini menjelaskan tentang kernel dengan cukup mendalam. Penjelasannya sangat jelas ditemani dengan aksen british dari Sang pembicaranya. Di tengah video, ia juga memberikan beberapa animasi.

27. Page Replacement

Apa itu paging, page fault, dan bagaimana page replacement dilakukan? Laman ini membahas hal-hal tersebut, dan berfokus pada page replacement algorithm. Terdapat pula visualisasi dari masing-masing algoritma beserta dengan step-by-stepnya.

28. Perbedaan Memory dan Storage

Kebanyakan orang masih salah paham tentang memory dan storage. Selain membahas tentang perbedaannya, dibahas juga pengaruhnya terhadap komputer. Artikelnya cukup singkat dan bahasa yang digunakan juga mudah dipahami.

29. Mengecek Penggunaan RAM di Linux

Sering menggunakan task manager untuk memantau penggunaan RAM, CPU, dan lain-lain di windowsmu? Terdapat juga cara untuk memantau penggunaan RAM di linux. Step-by-step yang diberikan sangat jelas dan disertai dengan penjelasan, sehingga kita juga dapat memahami apa yang kita sedang lakukan.

30. Top dan kustomisasinya

Kebingungan saat menjalankan Top? Semua command yang dapat digunakan saat menggunakan top dicantumkan dan dijelaskan dengan baik di laman ini.

31. Fork di C

Dalam bahasa pemrograman C, ada sebuah fungsi bernama fork() yang kegunaannya dijelaskan secara rinci di web geeksforgeeks ini. Dan seperti kebanyakan artikel yang ada di geeksforgeeks, terdapat contoh penggunaan dan beberapa ilustrasi yang sangat membantu.

32. Belady’s Anomaly

Pembahasan di laman ini mengenai Belady’s Anomaly sangat baik menurut saya. Mulai dari definisi, penyebab, dan cara mengatasinya dibahas dengan jelas. Tiap section dipisahkan juga dengan baik dan hampir di setiap section terhadap gambar yang akan memudahkan pembaca dalam memahaminya.

33. Multithreading vs Hyper Threading

Halaman ini menjelaskan tentang multithreading yang ada di materi minggu ini, dan konsep baru yang bernama hyper threading. Penjelasan dimulai dengan definisi daru kedua konsep dan dilanjutkan dengan perbedaan keduanya. Artikel ini bagus karena dari awal sudah sudah memberi tahu inti perbedaan keduanya, lalu kemudian eksplanasi tentang kedua hal tersebut dan dilanjutkan dengan perbedaannya lagi dengan lebih mendalam

34. Intro to Process Synchronization

Artikel ini menjelaskan seputar synchronization dan kapan ia diperlukan. Seperti biasa, artikel dari GeeksforGeeks selalu mengandung gambar yang memudahkan pembaca dalam memahaminya. Selain itu, ada soal latihan juga yang dapat dikerjakan untuk melatih pemahaman kita.

35. Concurrency in Operating System

Setelah sebelumnya membahas tentang synchronization, artikel lanjutan ini membahas tentang concurrency yang sering dibahas juga di beberapa mata kuliah akhir-akhir ini. Pembahasan cukup komprehensif mulai dari prinsip-prinsipnya, permasalahan yang sering muncul, hingga keuntungan dan kerugian saat menggunakan concurrency. Pembahasannya sangat to the point dan terdapat link ke artikel lain untuk mengetahui istilah yang disebutkan lebih lanjut.

36. Process

Cukup sulit untuk memahami apa itu suatu proses di dalam komputer. Namun artikel ini mampu membahasnya secara jelas mulai dari apa saja komponen yang terlibat hingga lifecycle-nya. Penjelasan disertai dengan gambar, contoh code, dan bahasa yang mudah dipahami membuatnya menjadi salah satu artikel yang sangat saya rekomendasikan.

37. Fork in C

Fork pasti sering kita dengar, namun penjelasannya tidak semudah itu untuk dipahami. Dengan artikel ini, fork menjadi relatif lebih mudah dipahami karena artikelnya mencantumkan ilustrasi yang sangat membantu beserta dengan contoh penggunaannya secara langsung di bahasa C.

38. Orphan vs Zombie vs Daemon processes

Ternyata tidak hanya satu process yang terdapat di sebuah sistem operasi. Process dapat dikelompokkan lagi menjadi beberapa jenis sesuai dengan kondisinya. Artikel ini memberikan penjelasan dengan sangat jelas, relatif singkat, dan bahasa yang mudah dimengerti.

39. Long Term and Short Term Scheduler

Sesuai dengan judulnya, laman ini berisikan informasi mengenai apa itu long term scheduler dan short term scheduler. Penjelasannya sangat to the point dan singkat. Perbedaan antara keduanya juga disajikan dalam bentuk tabel sehingga menjadi lebih jelas.

40. Multiprocessing vs Multithreading

Setelah memahami tentang process dan thread, artikel ini akan memberikan pemahaman lebih dalam tentang multiprocessing dan multithreading. Yang membuat artikel ini menjadi menarik menurut saya adalah penjelasannya yang disertai dengan gambar dan kunci perbedaan kedua hal tersebut yang disajikan dalam bentuk tabel.

41. Multiprogramming dan Multitasking

Selain multiprocessing dan multithreading, terdapat pula multiprogramming dan multitasking yang akan dijelaskan secara lebih lengkap di artikel ini. Penjelasannya menggunakan bahasa yang mudah dimengerti dan tentu saja disertai dengan ilustrasi untuk memudahkan kita dalam memahaminya, sehingga artikel ini sangat ramah terhadap pemula.

42. Moore’s Law

Alasan terkuat yang membuat timbulnya hal-hal berbau multi-core adalah Moore’s Law yang pembahasannya dapat dilihat lebih lengkap di artikel ini. Apa itu Moore’s Law, sejarahnya, hingga ke pengaruhnya ke beberapa sektor dijelaskan secara gamblang di sini. Dengan gaya bahasanya yang mudah dimengerti dan layout-nya yang juga sangat ramah mata membuatnya menjadi artikel yang menarik untuk dibaca.

43. Race Condition

Laman ini tentu saja menjelaskan tentang race condition. Penjelasan di laman tersebut menggunakan bahasa yang sangat mudah dimengerti. Selain itu, terdapat juga beberapa contoh yang disediakan untuk memudahkan pembaca dalam memahami apa itu race condition.

44. Deadlock

Di sini penjelasan tentang deadlock diberikan dengan sangat baik. Selain itu, laman ini juga mejelaskan tentang cara mengantisipasi dan mengatasinya. Tentunya juga terdapat ilustrasi yang sangat membantu kita untuk mengerti lebih jauh tentang deadlock.

45. Critical Section Problem

Website ini menjelaskan tentang critical section dan hal apa yang harus dilakukan dalam mengatasinya. Penjelasan yang diberikan sangat singkat dan mudah dimengerti. Selain itu laman ini juga menyediakan gambar yang akan memperkaya pemahaman pembaca.

46. Semaphore

Penjelasan tentang semaphore yang diberikan laman ini sangat komprehensif. Mulai dari definisi, tipe, hingga kelebihan dan kekurangannya dibahas dengan sangat jelas. Diberikan juga beberapa potongan kode dan ilustrasi yang akan memudahkan pembaca, serta hyperlink yang akan memudahkan navigasi.

47. Peterson’s Algorithm in Process Synchronization

Peterson’s Algorithm dijelaskan dengan sangat baik di laman ini. Ilustrasi, penggalan kode, dan bahasa yang jelas jadi nilai tambah bagi laman ini.

48. Starvation

Starvation yang cenderung mirip dengan deadlock dijelaskan dengan sangat baik di sini. Selain bahasanya yang mudah dimengerti, diberikan juga tabel perbandingan yang akan membuat pembaca semakin memahami lebih dalam tentang starvation.

49. Banker’s Algorithm

Laman ini menjelaskan tentang Banker’s Algorithm yang berhubungan dengan deadlock. Selain menjelaskan hal-hal teknis, laman ini juga menjelaskan mengapa algoritma tersebut dinamakan demikian. Seperti biasa, tentu saja terdapat ilustrasi di dalamnya yang akan memudahkan pembaca dalam memahami hal tersebut.

50. Sticky Bit

Sticky bit yang sejatinya telah dikenal sejak lama di dunia komputer dijelaskan dengan sangat baik di laman ini. Dengan penjelasan yang sangat lugas disertai dengan contoh yang sangat membantu, menjadikan laman ini masuk dalam rekomendasi saya minggu ini.

51. Readers-Writers Problem

Masih berkaitan dengan materi minggu ini, terdapat satu masalah yang umum ditemukan yaitu Readers and Writers Problem. Penjelasan dari laman ini sangat baik karena singkat dan disertai dengan penggalan kode yang akan memudahkan kita sebagai pembaca dalam memahami konteks yang diberikan.

52. Dining Philosophers Problem

Dining Philosophers Problem yang juga merupakan salah satu masalah yang umum ditemukan di sistem operasi. Laman ini akan membahas definisi dan solusinya dengan sangat baik dan singkat. Selain itu, akan terdapat potongan kode yang tentunya akan memudahkan pengguna dalam memahaminya.

53. Intro to CPU Scheduling

Ini adalah sebuah video yang membahas tentang CPU Scheduling. Di dalamnya, tersaji pembahasan yang sangat mudah dipahami. Selain itu, banyak analogi atau ilustrasi yang disediakan pembuat video untuk membuat kita lebih mudah dalam memahaminya.

54. CPU and I/O Burst Cycles

Video ini adalah kelanjutan dari video sebelumnya. Topik yang dibahas adalah seputar CPU dan I/O Burst. Penjelasan yang diberikan dimulai dari dasar-dasar, lalu pembahasan, kemudian penegasan kembali yang akan membuat kita semakin paham akan penjelasannya.

55. Preemptive vs Non-Preemptive Scheduling

Masih seputar CPU Scheduling, di artikel ini akan dibahas perbedaan antara Preemptive dan Non-Preemptive Scheduling. Pembahasannya dimulai dengan definisi keduanya, lalu dilanjutkan dengan membandingkan secara langsung perbedaan di antara keduanya. Keuntungan dan kerugian dalam menggunakannya juga ditulis menggunakan bullet points sehingga menjadi lebih singkat.

56. CPU Scheduling Algorithms

Terdapat beberapa algoritma scheduling di CPU. 6 yang utama dibahas di artikel ini dengan sangat singkat, padat, dan jelas. Karakteristik dari masing-masing juga dielaborasi dengan baik. Di akhir, penulis juga memberikan ringkasan dari penjelasan yang sudah diberikan sebelumnya.

57. Asymmetric vs Symmetric Multiprocessing

Artikel ini membahas tentang Asymmetric dan Symmetric Multiprocessing. Pembahasannya singkat dan mudah dimengerti. Kemudian ada tabel perbandingan yang akan menunjukkan kunci perbedaan keduanya.

58. Non-Uniform Memory Access

NUMA yang yang merupakan arsitektur baru dibahas di artikel ini. Penjelasannya dimulai dengan sejarahnya, lalu ke definisinya. Juga terdapat beberapa gambar yang akan memberikan kejelasan lebih lanjut terkait dengan NUMA ini.

59. Load Balancing

Penjelasan tentang Load Balancing di artikel ini sangatlah lengkap. Dimulai dari definisi, sejarah, hingga ke algoritma yang digunakan dalam load balancing dikupas sampai tuntas. Tampilan yang bersih dan penjelasan yang singkat menjadi nilai tambah bagi artikel ini.

60. Hard vs Soft Real Time System

Artikel ini membahas tentang hard dan soft real time system. Penjelasannya sangat singkat namun mudah dimengerti. Juga ada tabel perbandingan yang memberikan secara jelas perbedaan antara 2 hal ini.

61. Multi-Core Processors

Di masa ini, multi-core processor menjadi hal yang sangat lazim ditemui di perangkat terbaru. Penjelasan mengenai multi-core processor di artikel ini akan membuat kita lebih paham mengenai hal tersebut. Terdapat pengenalan, contoh, hingga tantangan apa yang dihadapi multi-processor dan semuanya dibahas dengan bahasa yang mudah dimengerti.

62. Big O Notation

Topik yang telah dipelajari di mata kuliah sebelumnya ini cukup menarik untuk di-refresh kembali. Artikel yang satu ini membahas secara lengkap dan komprehensif tentang Big O. Juga terdapat contoh dan ilustrasi yang tentunya akan memudahkan pembaca dalam memahami hal tersebut.

63. Algoritma Shortest Job First ↔

Algoritma Shortest Job First merupakan salah satu algoritma dalam CPU Scheduling. Sesuai dengan artinya, algoritma ini akan memproses process yang memiliki waktu eksekusi terpendek. Pada Shortest Job First terdapat istilah Preemptive dan Non-Preemptive, cek link di atas untuk tahu apa perbedaan ###keduanya.

64. Algoritma Round Robin 🟢

Penamaan algoritma ini berasal dari Round Robin Principle, di mana setiap orang mendapat pembagian yang sama. Algoritma ini merupakan algoritma tertua dan paling simpel.

65. Algoritma Priority Based Scheduling ✅

Sesuai dengan namanya, algoritma ini akan memproses process sesuai dengan priority yang dimilikinya. Process yang memiliki prioritas tertinggi akan dikerjakan terlebih dahulu, sedangkan process dengan prioritas rendah akan dikerjakan di akhir.

66. Lebih Lanjut Mengenai Preemptive dan Non-Preemptive ❔

Pada beberapa algoritma scheduling, algoritma tersebut dibagi menjadi preemptive dan non-preemptive. Apakah perbedaan keduanya dan kapah hal tersebut dapat terjadi? Cek website di atas ya 😁

67. Arrival Time vs Burst Time 💨

Pada scheduling, kita mengenal beberapa jenis Time atau Waktu. Dua di antaranya adalah arrival time dan burst time. Mungkin nama keduanya cukup menggambarkan arti masing-masingnya, tetapi apakah kenyataannya demikian? Cek website di atas.

68. Apa itu Linux from Scratch #️⃣

Pada tugas W08, kita dikenalkan dengan Linux from Scratch (LFS). LFS merupakan sebuah project yang berisi intruksi mengenai cara untuk membuat Linux kita sendiri. Website di atas merupakan website utama LFS dan memiliki instruksi yang sangat detail mengenai tahapan yang perlu dilakukan.

69. Learn Mass Storage

Storage is a central part of a system. We’ve learned in previous lecture (Intro to Computer Architecture) that there are several types of it. This website provides good explanation about the overview of mass storage hardware and the scheduling algorithm of it.

70. Overview of RAID Technology

You must have heard of the word “RAID” when talking about storage (like RAID 0, RAID 1, etc). Well, find out more about it here!