Jadi, pada kesempatan kali ini, ayo kita diskusi tentang konsep-konsep yang lebih lanjut dari sistem operasi. Didalam sistem operasi, terdapat beberapa istilah, istilah yang umum tersebut diantaranya adalah :
- Proses = Program yang berjalan
- Thread = Kumpulan instruksi yang ada di prosesor
- Entitas = Benda (program) yang bisa di eksekusi oleh prosesor
Nah, karena proses itu adalah program yang berjalan, tentu saja didalam proses tersebut terdapat beberapa item yang berjalan didalamnya, seperti :
- Program yang dapat dieksekusi
- Data (Variabel, Work, Status)
- Status proses
Semua yang telah saya sebutkan diatas, bagian paling penting (untuk mengeksekusi) adalah prosesor. Sehingga prosesor memiliki bagian sendiri untuk menjalankan dan mengeksekusi thread-thread yang ada di didalamnya. Bagian prosesor ada dua, yaitu :
- Prosesor Register, disini register gambarannya seperti memori. Sehingga instruksi apapun yang akan dijalankan akan dipindah (dicopy) disini untuk dijalanlan oleh prosesor. Disini, prosesor dapat mengetahui proses yang adakan dieksekusi selanjutnya sebab ada Index
- PC (Program counter), oiya disini PC bukan komputer yang besar dan ada CPU terus monitor dan lain-lai itu ya(-_-). Disini PC berarti penunjuk untuk eksekusi prosesor selanjutnya. Sehingga prosesor akan mengeksekusi apa yang ditunjuk oleh PC tersebut. PC akan mengiterasi dirinya sendiri ke register selanjutnya untuk menjalankan Thread.
Gimana temen-temen? Sudah pusing? wkwkwkwk, emang binguning kok, tapi sabar. Sebab cari ilmu itu harus penuh perjuangan (*sok bijak :v). Nah, sekarang memory management. Jadi gini temen-temen, pernah berpikir gak kalo temen-temen main game dan itu kok bisa dieksekusi oleh prosesor? Gini temen-temen, sebenarnya semua perintah untuk game tersebut dipindah ke memori utama (RAM) nah dari RAM tersebut bisa dieksekusi prosesor melalui register. Jadi, kalo misalkan main game dan RAM.nya kurang suka nge-lag kan? Itu karena antar perintah satu dan perintah lain terjadi delay, sehingga ada proses tunggu dan perintah yang harusnya uda dieksekusi jadi belum dieksekusi.
Lho, kalo gitu gimana tentang gameku yang banyak? Kan RAM.ku cuma 4 gb (misal), trus gameku ada 100 gb dihard disk, kalo semua perintah harus ditaruh di RAM, gak cukup kan? Kalo masalah itu, itu tugasnya OS temen-temen, jadi setiap OS punya fungsi yang namanya Memory Management. Nah salah satu fungsi ini adalah Virtual memory. Virtual memory itu gunanyya untuk mengelabui prosesor, jadi Virtual memory membuat RAM terlihat besar banget, padahal enggak. gunanya apa? Biar kita bisa nyimpen data yang besar sesuai hard disk yang kita punya, gak cumaa terbatas pada RAM saja. Jadi, kesimpulannya prosesor gak mau tau sebesar apa RAM atau Harddisk yang kita punya, prosesor cuma tau kalo selama masih ada space maka akan dieksekusi. Tugas pengalokasian (penipuan) memory tersebut di serahkan sepenuhnya oleh OS.
Dari tadi kan kita diskusi cuma konsep memory managemen ada, lah sekarang apa gunanya memory menagemen? Gini temen-temen, beberapa fungsi memory managemen itu ada :
- Isolasi Proses, biar g semua user dapat mengubah proses inti dai prosesor atau OS
- Alokasi dan managemen secara otomatis, ini gunanya biar kita bisa nyimpen program sesuai dengan harddisk
- Mendukung Modular Programing, jadi ini gunanya biar kita bisa buat program didalam OS
- Proteksi dan data akses, misal ada data admin yang penting banget, maka user biasa harus g bisa ngakses data admin tersebut
- Long-term Storage, biar kita bisa nyimpen data yang kita punya dalam jangka panjang
Temen-temen pernah kepikiran gak, kalo beberapa game butuh kayak minimal dual core, atau core i3, dll? Kan tadi prosesor hanya bisa eksekusi 1 intrsuksi di satu waktu? Nah hini temen-temen, dalam OS, ada yang namnya multiprosessing, jadi prosesor bisa mengeksekusi lebih dari 1 instruksi dalam 1 waktu. Sehingga misal ada 2 thread, dan komputer tersebut mendukung multiprosessing, maka 2 buat thread tersebut dapat dieksekusi secara bersamaan. Jadi, dengan ada multiprosessing ini, instruksi yang penjang dapat dipersingkat, dengan catatan perintah-perintah tersebut mendukung adanya multiprosessing. Berikut adalah beberapa syarat multiprosessing :
- Multiple Prosessor
- Prosessor memiliki memory dan I/O berbeda
- Prosessor tersebut dapat melakukan kemampuan fungsi yang sama
Beberapa istilah SMP (Symmetric Multiprossesing), memiliki arti, bahwa pembagian proses yang dijalankan oleh prosessor untuk dibagi-bagi secara sama rata pada setiap inti prosessor yang ada (Biar gak gabut/gaji buta). Namun perlu diingat, bahwa Single thread, TIDAK dapat dibagi ke beberapa inti prosessor, sebab single thread TIDAK mendukung adanya multiprosessing. Beberapa keuntungan:
- Performa (karena dapat diselesaikan lebih cepat)
- Ketersediaan Terjamin (Sebab kerja masing-masing inti dapat berkurang bebannya)
- Incremental growth (Dapat lebih cepat dalam setiap pemrosesan)
gimana temen-temen? cukup? saya juga udah capek, wkwkwkwkwk.
sekian dulu temen-temen, minggu depan saya post lagi, selamat pagi dan selamat beraktivitas
:D
No comments:
Post a Comment