Wednesday, October 22, 2014

Proses (Kodok ganteng)

Selamat siang, teman-teman. Sudah siap untuk berdiskusi lagi tentang sistem operasi? Jadi, kali ini diskusi kita tentang perdalaman apa sebenarnya proses itu.

Seperti yang sudah dibahas, proses itu adalah program yang berjalan. Nah, proses ini pasti memiliki urutan intsruksi untuk dijalankan, yang bagian menjadi penunjuk adalah Dispatcher, sekumpulan daftar itu dalah trace. Jadi program yang akan berjalan ini, tentu saja akan dipilih oleh dispatcher agar dapat dieksekusi.

Nah, otomatis, ketika process ini berjalan, ada statusnya. Sebab tidak semua proses langsung berjalan terlebih dahulu, ada dipatcher yang akan memilih trace mana yang berjalan. Nah, beberapa fase status tersebut adalah :
  • Running = Program siap berjalan
  • Not running = program siap dijalankan
  • Block = ketika suastu proses sedang menunggu agar dapat dijalankan
  • Suspend = Ketika program yang pada fase block terlalu lama, sehingga di taruh kefase lain agar tidak terlalu memakan memori.
Nah, didalam sistem operasi juga memiliki bagian lain, namanya kontrol proses. Nah, salah satunya, kontrol proses ini mencatat semua proses yang terjadi di komputer. Kontrol proses terdiri dari :
  • Memory tables
  • I/O tables
  • File Tables
Memory tables itu mencatat semua yang berubah yang ada di dalam memory, baik secara fisik ataupun virtual. Contoh yang dicatat :
  • Alokasi main mamory ke proses
  • Alokasi memory sekunder ke proses
  • atribut proteksi, pada blok tertentu
  • informasi2 tentang memory
 I/O tables berguna untuk mengatur pembagian I/O devices

File tables, untuk memcatat pembagian akses file Contoh yang dicatat
  • state
  • pid
  • lokasi memory

Wednesday, October 8, 2014

Perintah dasar Linux

Selamat pagi temen-temen, gimana kabarnya? Ok, kali ini kita akan diskusi tentang perintah dasar yang ada di Linux. Jadi, temen-temen tau gak, kalo di linux itu kita bisa ngakses seluruh sistem operasi dengan hanya mengakses terminal. Tapi, ya gitu temen-temen harus dengan perintah yang sesuai dengan command yang benar. Nah, apa saja command itu? berikut beberapa command dasar yang bisa temen-temen gunakan untuk dicoba di terminal
  • pwd, memberi informasi dimana directory yang sekarang berada
  • ls, menampilkan seluruh directory yang ada di directory sekarang
  • cd, untuk mengganti directory
  • wget, untuk mendownload langsung dari alamat melalui terminal
  • curl, untuk mengupload k server melalui terminal
  • rm, untuk me-remove sebuah direktori maupun file
  • mkdir, membuat folder baru
  • kill, untuk melaksanakan terminate proses
  • sudo, untuk melakukan perintah yang dengan akses super user
berikut diatas adalah perintah-perintah dasar yang ada di linux. Kalo pengen tau lebih lanjut, temen-temen bisa ketik "man (perintah)", untuk mengetahui lebih lanjut tentang rincian perintah tersebut, contoh: "man mkdir" => tanpa tanda petik.

selain itu temen-temen, di Linux juga bisa untuk melakukan sesuatu secara otomatis, jadi misalkan temen-temen ingin melakukan sesuatu tapi kelupaan, maka di Linux ada layanan berupa crontab. Crontab ini berguna untuk melakukan perintah yang kita inginkan secara otomatis. langkah-langkah penggunaan Crontab adalah :
  • ketikkan crontab -l
  • jika tidak ada, maka tidak ada crontab yang sedang berjalan
  • untuk menambahkan, ketikkan crontab -e
  • baris yang ada "#" merupakan command line, jadi g usah bingung
  • tambahkan baris */ * * * * * /direktori/dimana/perintah/ada
  • antara tanda /, terdapat 5 bintang, bintang yang pertama berarti menit, lalu jam, lalu tanggal, bulan, hari dalam satu minggu.
contoh penggunaan crontab */10 20 * * * /direktory/dimana/perintah/ada/kodok_ganteng.sh

jadi, setiap jam 20.10, saya (kodok) semakin ganteng. jika ingin merubah tinggal memasukkan tanggal bulan dan hari dalam 1 minggu (1-7). jika seperti ini */* * * * * /direktory/dimana/perintah/ada/kodok_ganteng.sh maka saya selaku kodok, akan semakin ganteng setiap menit
wkwkwkwkwk

gimana temen-temen? sudah bisa? slamat dicobaaa

Wednesday, October 1, 2014

Paham Sistem Operasi = Ganteng

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