Fendy Chandra – 1601221420
Pertemuan 1-1: Computer System Overview
Di sesi ini, intinya yang kita pelajari adalah tentang garis besar sistem komputer, kayak elemen-elemen dasarnya, instruction cycle, interupsi, memory, sama I/O types. Entah kenapa rasanya beberapa materi yang dipelajari disini udah pernah dipelajarin waktu semester awal dulu, tapi ya sudah lah ya :v
Bahasan pertama di pertemuan pertama kemaren adalah tentang Operating System (OS), yang semacem Windows, iOS, Android dan semua kawannya itu lah. Kalau secara teori, OS itu tugasnya buat ngelola resource yang ada didalam komputer, nyediain User Interface (UI), sama ngatur semua memory sekunder dan semua hardware input/output yang dipasang ke komputer.
Nah didalam sistem komputer ini ada 4 elemen dasar, yaitu prosesor, main memory, I/O modules, sama system bus.
Ada juga yang namanya arsitektur komputer, yang kira-kira bisa diliat di gambar ini:
Nah didalam sistem komputer ini, ada yang namanya instruction cycle, isinya ngegambarin apa-apa aja yang dikerjain komputer waktu ada instruksi (inputan) yang diterima dari user. Instruction Cycle yang paling simpel tahapannya cuma:
- START, jadi komputernya baru mulai nerima instruksi
- FETCH NEXT INSTRUCTION, komputer ngambil instruksi berikutnya dari memori
- EXECUTE INSTRUCTION, inputan yang udah diterima dari user dieksekusi
- HALT, komputernya selesai ngelakuin apa yang diperintahkan user.
Tipe-tipe instruksi yang bisa diterima komputer ada processor-memory (buat transfer data antara prosesor sama memori), processor-I/O (data ditransfer dari/ke peripheral), data processing (bisa berupa perhitungan aritmatika atau logika), dan control (mengubah urutan eksekusi).
Untuk bagannya bisa diliat di sini:
Nah di dalam eksekusi instruksi, ada juga siklusnya sendiri. Ada 2 macam siklus eksekusi, yaitu pipelining dan Superscalar. Siklus pipelining punya 3 tahapan, yaitu Fetch (ngambil perintah), Decode (baca perintahnya), sama Execute (lakukan perintahnya). Siklus superscalar sebenernya hampir sama kayak pipelining, cuma ada holding buffer buat nampung instruksi-instruksi yang udah di-decode. Bagan buat 2 siklus ini bisa diliat di bawah:
Nah, kelar bahas eksekusi, lanjut ke interrupt. Simpelnya, interupsi itu prinsipnya sama kayak interupsi yang ada di rapat-rapat itu (yang ada orang nyela pembicaraan pas lagi ada bahasan tertentu), jadi ada semacam event tertentu di luar proses yang lagi jalan yang ngaruh ke urutan eksekusi instruksi. Nah, kalo dalam eksekusi komputer, ada 4 macem interupsi, yaitu:
- Program
- Timer
- I/O
- Hardware failure
Sebenernya interupsi ini bagus buat meningkatkan efisiensi pemrosesan, soalnya dia memungkinkan prosesor buat ngelakuin instruksi lain selama operasi input/output lagi diproses. Nah supaya ini bisa terjadi, ada program yang namanya interrupt handler. Kalau butuh gambar soal interupsi ini bisa diliat dibawah:
Interupsi udah, sekarang lanjut ke memory. Memory sendiri ada beberapa tingkatan berdasarkan kecepatannya (bisa diliat di gambar dibawah, makin keatas makin cepet). Intinya, makin cepet sebuah memori, makin berkurang tingkat keamanannya, jadi makin lambat memorinya makin aman juga memorinya. Jadi pilih memori yang mau dipakai sesuai sama kebutuhan juga, jangan asal ngincer cepetnya aja :v
Nah didalam main memory, ada bagian yang namanya cache (entah cara bacanya gimana, ada yang bilangnya “cas”, ada juga yang bilangnya “kech”, gatau mana yang bener, tapi yaa kira-kira ga jauh-jauh dari situ lah). Nah cache ini mempercepat kecepatan memori. Yang paling sering dialamin sih pas lagi browsing, biasanya website yang sering kita buka bakalan lebih cepet loadnya daripada yang baru pertama kali dibuka, nah ini gara-gara kita udah nyimpen cache dari web yang pernah kita buka.
Cache sendiri ada 3 macem, yaitu L1, L2, sama L3.
Pertemuan 1-2: Operating System Overview
Kayak matkul 4 SKS yang lain, di OS ada 2 slide tiap pertemuannya (entah musti senang ato sedih :v). Jadi abis kelar slide yang pertama tadi, kita lanjut bahas tentang OS.
OS ini sebenernya adalah program yang gunanya ngatur jalannya aplikasi/program lain dan sebagai interface antara aplikasi sama hardware. Jadi, kalo ga ada OS kita ga bisa jalanin program/aplikasi lain.
OS ini punya 3 tujuan utama:
- Convenience, soalnya kalo ada OS komputer jadi lebih enak buat dipake
- Efficiency, soalnya OS ngatur penggunaan resource secara seefisien mungkin
- Ability to evolve, jadi OS ini bisa terus-terusan dikembangin tanpa ngaruhin fungsi-fungsi yang udah ada.
Di dalam OS ini ada juga 7 konsep dasar:
- Proses
- Space alamat
- File
- Input/Output
- Proteksi
- Shell
- Harus punya memori yang gede, hardware buat proteksi, disks, sama virtual memory.
OS ini punya beberapa struktur, tapi buat pertemuan kemaren baru 1 yang dibahas (yang “katanya” paling basic), namanya struktur monolitik. Di struktur ini, ada main program yang manggil prosedur yang dibutuhkan, service procedure yang ngerjain system call, sama utility procedure yang ngebantuin service procedure.
Gambar struktur monolitik bisa diliat di bawah:
OS juga bisa dianggap sebagai sistem berlapis (layered), yang urutannya dari layer 5 sampe layer 0, yang punya tugas masing-masing.
Di dalam OS, ada bagian inti yang “kata ko Sky” paling susah dibikin, namanya Kernel. Isinya si Kernel ini kebanyakan fungsi-fungsi yang paling sering dipake sama OS. Intinya kalo ga ada Kernel ini gabakal jadi dah OSnya :v
OS sendiri udah ngalamin perkembangan yang jauh dibandingin waktu masih jaman awal-awalnya dulu. Kira-kira begini garis besar perkembangannya:
- Sebelon ada OS, yang dipake namanya Serial Processing. Disini mesinnya masih dikendaliin pake konsol.
- Simple Batch System, disini ada software yang namanya monitor, fungsinya buat ngelompokin proses-proses tertentu ke dalam batch-batch tertentu. Supaya kita bisa ngasih instruksi ke monitor, kita perlu make bahasa special yang namanya Job Control Language (JCL).
Nah dalam OS ada prinsip uniprogramming dan multi programming (gambarnya bisa diliat dibawah). Kalo pake uniprogramming, artinya kita Cuma ngejalanin 1 program aja, nah sebaliknya kalo pake multiprogramming, kita bisa ngejalanin beberapa program dalam 1 komputer (tapi pakenya ganti-gantian juga yaa). Nah prinsip multi programming ini dipake kalo kita perlu ngehandle beberapa tugas yang interaktif, supaya bisa jalan dengan bener kita pake time sharing.
Nah disini ada juga istilah process, artinya program yang lagi dijalanin (bisa diliat juga kok kalo kita buka Task Manager di Windows). Nah process ini bakal makan memory yang ada di dalam RAM. Jadi kalo komputer/laptop kita kecil otomatis kita ga bisa buka terlalu banyak program sekaligus (ato yang kegedean juga gabisa dibuka sih). Nah, buat ngatasin ini kita bisa beli RAM baru (kalo ada duit), ato cara hematnya bisa pake yang namanya Virtual Memory. Prinsipnya VM adalah ngambil sebagian dari memori Hardisk buat dipake sebagai ‘RAM’ tambahan. Walopun cara ini lebih hemat dibandingin beli RAM baru, tapi bisa dibilang pake VM lebih lambat daripada pake RAM beneran.
Pertemuan pertama kemaren “cuma” 2 materi ini “aja” yang dibahas, jadi kita cukupkan sampai sekian dulu yaa. Minggu depan bakal dipost lagi materi buat pertemuan kedua.
BINUS (www.binus.ac.id) | www.skyconnectiva.com