CHAPTERS AND TOPICS

Rangkuman dari topik-topik yang dipelajari di perkuliahan.

Chapters and Topics

Rangkuman dari topik-topik yang dipelajari di perkuliahan.

Secara umum, Operating System (OS) atau Sistem Operasi didefinisikan sebagai perangkat lunak yang membuat user bisa menjalankan aplikasi pada sebuah perangkat komputer. Namun, tergantung dari sudut pandangnya, definisi OS bisa berbeda-beda. Bagi user, Sistem Operasi ada untuk memudahkan User menjalankan aplikasi yang lain (ease of use) tanpa mempedulikan resource utilization. Namun, dalam sudut pandang system dalam Shared Computer semacam Mainframe ataupun Minicomputer, Sistem Operasi dipandang sebagai Resource Allocator.


Lebih lanjut mengenai materi ini bisa kalian pelajari di Chapter 1 Section 1.1 Buku/Slide Operating System Concepts Silberschatz

Sistem angka yang lazim digunakan dalam sistem komputer ada 4, yaitu Binary (base-2), Octal(base-8), Decimal(base-10), dan Hexadecimal(base-16). Interrupt secara umum adalah signal yang dikeluarkan oleh Device Controller untuk menginformasikan pada CPU bahwa proses yang dijalankan telah selesai.
Kernel adalah bagian dari Sistem Operasi yang mengontrol semua proses yang ada dalam system, baik itu input/output, data-processing, dan lain-lain.
Bus adalah sistem komunikasi yang melakukan transfer data antar-komponen dalam komputer.
Device Controller adalah sebuah sistem yang mengendalikan sinyal masuk dan sinyal keluar dalam CPU.

Lebih lanjut mengenai materi ini bisa kalian pelajari di Chapter 1 Buku/Slide Operating System Concepts Silberschatz dan materi-materi yang telah kalian pelajari di mata kuliah Pengantar Organisasi Komputer.

Design dalam hal ini mengacu pada bagaimana OS dibuat sesuai dengan tujuannya. Seperti yang telah dijelaskan pada definisi OS, tujuan dari OS bisa berbeda tergantung dari sudut pandangnya. Design OS akan bergantung dari tujuannya tersebut, yang bisa dibagi menjadi user goals dan system goals.
(Baca lebih lanjut Chapter 2 Section 2.7 Buku/Slide Operating System Concepts Silberschatz)

Resource Management berkaitan dengan tugas Operating System sebagai resource manager. Hal-hal yang perlu diatur oleh OS termasuk CPU Process, Memory, File-System, Mass-Storage, Cache, dan I/O System.
(Baca lebih lanjut Chapter 1 Section 1.5 Buku/Slide Operating System Concepts Silberschatz)

Services dan Functions mengacu pada environment yang diberikan oleh OS untuk mengeksekusi program. Tentu saja setiap OS memberikan Services dan Functions yang berbeda-beda. Namun, secara umum Services dan Functions untuk tingkat user digolongkan menjadi User Interface(UI), Program execution, I/O operations, File-system manipulation, Communications, dan Error detection. Sedangkan untuk system sendiri, Services dan Functions diantaranya Resource allocation, Logging, dan Protection and Security.
(Baca lebih lanjut Chapter 2 Section 2.1 Buku/Slide Operating System Concepts Silberschatz)

Interface bisa diartikan sebagai sarana pertukaran informasi antara user dan system. Interface yang sering ditemui dalam OS diantaranya Command Line Interpreter(CLI), Graphical User Interface(GUI, dan Touch-Screen Interface. Pilihan Interface sepenuhnya preferensi masing-masing user.
(Baca lebih lanjut Chapter 2 Section 2.2 Buku/Slide Operating System Concepts Silberschatz)

Dalam mata kuliah OS, kita akan lebih banyak mempelajari mengenai UNIX-Based OS, sehingga materi mengenai Command Lines, Scripting, REGEX, dan C Language akan sangat sering kalian jumpai. Apalagi, file demo yang disediakan semuanya ditulis dalam C Language. Jadi, sangat penting bagi kalian untuk sedikit mengetahui mengenai Command Lines, Scripting, REGEX, dan C Language. Kalian bisa belajar lebih banyak melalui tutorial-tutorial di internet dan juga e-book yang disediakan di folder Week01. (Untuk Regex kalian bisa mencari buku Regular Expressions tulisan Jan Goyvaerts. Untuk Bash/Scripting, cari buku Bash Guide for Beginners tulisan Machtelt Garrels)

Seiring perkembangan zaman, Operating System tidak lagi hanya tentang komputer desktop tetapi telah merambah ke perangkat mobile. Sistem operasi yang paling populer di masa sekarang adalah iOS yang dikembangkan oleh Apple dan Android yang dikembangkan oleh Google. iOS menggunakan Darwin (UNIX-like OS yang dikembangkan oleh Apple) sebagai dasarnya. Sedangkan Android menggunakan Linux kernel yang dimodifikasi sebagai dasarnya dan aplikasinya secara garis besar dibuat menggunakan Java dengan tambahan Android API.

Lebih lanjut mengenai materi ini bisa kalian pelajari di Chapter 2 Section 2.8.5.1 - 2.8.5.2 Buku Operating System Concepts Silberschatz

Materi ini mengacu pada bagaimana OS digunakan pada computing environtment yang berbeda-beda.
Real Time menyediakan proses yang dilakukan secara real-time, dimana akan memproses begitu data diterima tanpa delay.
Peer-to-Peer(PTP) merupakan salah satu struktur yang digunakan dalam sistem terdistribusi dimana client dan server-nya tidak dibedakan satu sama lain. Semua node dalam sistem ini disebut sebagai peer yang mana setiap peer dapat bertindak sebagai client atau server tergantung apakah peer tersebut menyediakan atau meminta data.
Client Server adalah struktur lain dalam sistem terdistribusi di mana server akan memproses data yang diminta oleh client kemudian hasilnya dikirimkan kembali ke client.
Virtualization adalah sebuah teknologi yang memungkinkan kita untuk mengabstraksi hardware dari suatu komputer tunggal ke beberapa execution environment berbeda di mana seolah-olah setiap environment dijalankan pada komputer yang berbeda-beda. Hal ini bisa dilihat seperti dua OS yang berbeda yang berjalan pada waktu yang sama dan dapat berinteraksi satu sama lain.
Cloud Services adalah arsitektur komputer yang memberikan komputasi, penyimpanan, bahkan aplikasi sebagai suatu layanan dalam suatu jaringan. Pada dasarnya, Cloud Computing merupakan suatu bentuk virtualisasi yang dijalankan dalam suatu jaringan. Cloud Computing memiliki beberapa tipe, misalnya Public cloud, Private cloud, Hybrid cloud, Software as as service (SaaS), Platform as a service(PaaS), dan Infrastructure as a service(IaaS).

Lebih lanjut mengenai materi ini bisa kalian pelajari di Chapter 1 Section 1.7 dan 1.10 Buku Operating System Concepts Silberschatz

Security berkaitan dengan keamanan dalam sistem komputer, kategori Security violation, metode security violation, program-program berbahaya, virus, dan sebagainya. Banyak sekali masalah keamanan yang perlu diperhatikan dalam sistem komputer, beberapa diantaranya adalah Breach of confidentiality, Breach of integrity, Breach of availability, Theft of service, dan Denial of service. Metode yang digunakan bisa bermacam-macam, misalnya Masquerading, Replay attack, Man-in-the-middle-attack, Session hijacking, dan Previlege escalation.
(Baca: Chapter 16 Buku/Slide Operating System Concepts Silberschatz)

Protection berkaitan dengan tujuan dan upaya-upaya yang dilakukan dalam mengatasi Security Problem yang dibahas pada Chapter 16. Protection membahas pula mengenai prinsip-prinsip dalam proteksi, Protection Rings, Domain of Protection, Access Matrix, dan lain sebagainya.
(Baca: Chapter 17 Buku/Slide Operating System Concepts Silberschatz)

Privacy berkaitan dengan keamanan data pribadi, apalagi dalam era big data seperti sekarang di mana privasi sudah dianggap sebagai istilah belaka. Privacy menurut istilahnya mencakup mengenai Limited access, Right to be let alone, Control over information, dan lain sebagainya.

Privilege dan Intelectual Property berkaitan dengan pandangan hukum mengenai perangkat lunak, termasuk Hak cipta dan Hak kekayaan intelektual. Konsep mengenai Hak Kekayaan Intelektual (HKI) sendiri telah diatur dalam Undang-Undang Republik Indonesia.
(Baca:Hak Kekayaan Intelektual dan GNU Philosophy)

File system berkaitan dengan konsep File dalam sistem operasi, termasuk Atribut, Operasi, Tipe, Struktur, dan Metode Aksesnya. File System juga berkaitan dengan Directory Structure, File System, dan File Sharing. Selain itu, File System akan membahas mengenai Allocation Method, Free-Space Management, dan Efficiency and Performance pada direktori.
Sedangkan FUSE merupakan software interface untuk sistem operasi UNIX yang mengizinkan pengguna untuk membuat File System-nya sendiri tanpa mengubah kode kernel sistem operasi tersebut.

Lebih lanjut mengenai materi ini bisa kalian pelajari di Chapter 13-15 Buku/Slide Operating System Concepts Silberschatz

Materi di bagian ini berkaitan dengan Main Memory dalam suatu komputer. Address berkaitan dengan lokasi spesifik pada memory yang digunakan dalam suatu proses kerja komputer. Suatu instruksi akan melibatkan proses menyimpan atau mengambil data dari memori dengan alamat(address) yang spesifik.
Binding mengacu pada Address Binding, yaitu proses mapping dari suatu address space ke address space yang lain. Logical address akan mengalami proses translasi yang dilakukan oleh Memory Management Unit yang akan menghasilkan physical address atau lokasi dari suatu data dalam RAM.
Libraries mengacu pada non-volatile resources yang digunakan dalam program komputer. Dikenal pula istilah Dynamically linked libraries(DLLs), yaitu system library yang terhubung pada user program ketika program dijalankan. Beberapa OS hanya mendukung static linking di mana system library diperlakukan seperti object module yang lain dan dikombinasikan oleh loader ke dalam binary program image.
Shared Memory adalah memory yang bisa secara bersamaan diakses oleh beberapa program dengan tujuan memberikan komunikasi antar-program untuk menghidari duplikasi data yang redundant.
Pointer mengacu pada programming language object yang menyimpan alamat memory sebagai penunjuk lokasi data pada memori yang nantinya akan dipakai dalam suatu proses tertentu.

Lebih lanjut mengenai materi ini bisa kalian pelajari di Chapter 9 Buku/Slide Operating System Concepts Silberschatz

Virtual Memory melibatkan pemisahan logical memory dengan physical memory. Hal ini akan memungkinkan tersedianya logical memory yang ukurannya jauh lebih besar dari physical memory yang akan memudahkan programmer di mana programmer tidak perlu khawatir mengenai keterbatasan physical memory dan lebih fokus ke proses developing.


Lebih lanjut mengenai materi ini bisa kalian pelajari di Chapter 10 Buku/Slide Operating System Concepts Silberschatz

Process adalah suatu unit kerja dalam sistem komputasi modern. Ketika kalian menjalankan beberapa program dalam waktu bersamaan, ataupun ketika suatu embedded system menjalankan suatu program yang ditanamkan didalamnya, hal tersebut disebut sebagai suatu proses. Program di dalam komputer baru akan disebut sebagai proses apabila program tersebut dijalankan. Status dari aktivitas suatu proses direpresentasikan dalam bentuk program counter. Ketika suatu proses dieksekusi, proses tersebut mengganti state-nya.

Thread adalah suatu ukuran dasar dari penggunaan CPU yang terdiri dari thread ID, program counter (PC), register set, dan stack. Sistem modern hampir semuanya sudah mendukung multithreading yang bisa menjalankan lebih dari satu pekerjaan dalam waktu bersamaan. Keuntungan dari sistem multithreading mencakup Responsiveness, Resource sharing, Economy, dan Scalability.


Lebih lanjut mengenai materi ini bisa kalian pelajari di Chapter 3-4 Buku/Slide Operating System Concepts Silberschatz

Sebuah proses yang kooperatif (cooperating process) adalah salah satu yang mempengaruhi dan/atau dipengaruhi oleh proses yang lain dalam sistem. Cooperating process bisa secara langsung berbagi logical address space atau berbagi data hanya dari shared memory atau message passing. Concurrent access pada shared data bisa menyebabkan inkonsistensi data yang disebut sebagai race condition, di mana hasil dari prosesnya tergantung dari urutan pengaksesan data dalam proses tersebut. Untuk mengatasi hal ini, maka diperlukan Synchronization untuk menjamin hasil yang didapatkan konsisten.
(Baca lebih lanjut Chapter 6 dan 7 Buku/Slide Operating System Concepts Silberschatz)

Deadlock adalah keadaan dimana setiap thread dalam distributed system saling menunggu data/proses dari thread yang lain. Hal ini menyebabkan setiap thread berada dalam waiting state dan tidak ada proses yang berjalan. Hal ini bisa dimisalkan sebagai dua kereta yang berada dalam persimpangan. Kedua kereta tersebut akan berhenti dan tidak akan bergerak sampai salah satu kereta bergerak. (Baca lebih lanjut Chapter 8 Buku/Slide Operating System Concepts Silberschatz)

CPU Scheduling adalah basis dari multiprogrammed operating systems. Dengan memindahkan CPU dalam setiap proses yang berjalan, OS bisa membuat komputer menjadi lebih produktif. Ide dari konsep ini adalah mengeksekusi sebuah proses sampai proses tersebut harus menunggu, yang biasanya berkaitan dengan I/O request. Dengan multiprogramming, kita mencoba untuk menggunakan waktu tunggu proses tersebut secara produktif dengan mengalihkan CPU ke proses yang lain hingga semua proses selesai. Ada beberapa kriteria dalam Scheduling, diantaranya CPU utilization, Throughput, Turnaround time, Waiting time, dan Response time. CPU Scheduling mencakup bahasan Scheduling Algorithms, Thread Scheduling, Multi-Procesor Scheduling, dan Real-Time CPU Scheduling.

Lebih lanjut mengenai materi ini bisa kalian pelajari di Chapter 5 Buku/Slide Operating System Concepts Silberschatz

Materi ini mengacu pada Mass-Storage Structure pada sistem komputer. Secondary storage pada komputer modern pada umumnya disediakan oleh hard disk drive (HDD) dan nonvolatile memory(NVM) semacam Solid-state disk(SSD).
Firmware adalah suatu software yang secara permanen ditanam pada hardware komputer. Firmware diprogram secara permanen untuk melaksanakan suatu instruksi yang berkaitan dengan komunikasi dengan perangkat lain dan melakukan tugas dasar seperti input/output. BIOS, ACPI, dan UEFI merupakan contoh firmware pada perangkat komputer.
Bootloader adalah suatu program yang mengeload dan memulai tugas dan proses booting dalam sebuah OS atau sistem komputer. Contoh bootloader pada sistem komputer adalah BOOTMGT(Windows), LILO(Linux), dan GRUB.
Systemd adalah salah satu fundamental building block bagi OS Linux. Systemd menggantikan Init dan Upstart sebagai OS Initialization pada Linux, dimana Systemd dianggap lebih baik daripada pendahulunya.

Lebih lanjut mengenai materi ini bisa kalian pelajari di Chapter 5 Buku/Slide Operating System Concepts Silberschatz dan Systemd Introduction

Materi ini berkaitan dengan I/O System pada komputer, di mana salah satu tugas utama dari komputer adalah input/output. I/O Device yang digunakan dalam sistem komputer sangatlah beragam dan kontrol dari setiap perangkat tersebut merupakan salah satu fokus utama dalam desain OS. Beragam metode dibutuhkan untuk mengontrol setiap perangkat tersebut agar bekerja sesuai dengan keinginan pengguna. Masing-masing I/O Device berkomunikasi dengan mesin/sistem komputer melalui connection point(port) dan antar-device saling bertukar informasi dan data melalui sebuah bus(contohnya PCI Express). Setiap detail cara kerja Device ini di-encapsulate oleh Device Driver. Komunikasi antar-device ini kemudian dimanfaatkan dalam I/O Programming, yaitu merupakan suatu proses penulisan atau pembacaan suatu file dalam subsystem komputer.

Lebih lanjut mengenai materi ini bisa kalian pelajari di Chapter 12 Buku/Slide Operating System Concepts Silberschatz