Sabtu, 24 Maret 2018

PENJELASAN PROSES DAN THREAD


Sebelum membahas mengenai proses sebaiknya kita membandingkan  terlebih dahulu perbedaan antara program dan proses karena sebagian orang masih menganggapnya sama.

Program vs Proses
Proses adalah program yang sedang dieksekusi. Sebagai contoh, ketika kita menulis sebuah program di C dan C ++ dan mengkompilasinya, compiler membuat kode biner. Kode asli dan kode Biner, keduanya adalah program. Ketika kita benar-benar menjalankan kode biner, itu menjadi sebuah proses.


Proses yang terjadi di memori :
Berikut  merupakan penjelasan proses yang terjadi di memori seperti pada diagram diatas :
·         Text
Proses A juga kadang-kadang dikenal sebagai Bagian Teks. Ini juga termasuk aktivitas saat ini yang diwakili oleh nilai penghitung program
·         Stack
Stack berisi data sementara seperti parameter fungsi, alamat pengembalian, dan variabel lokal.
·         Bagian Data: Berisi variabel global.
·         Heap Section
Merupakan memori yang dialokasikan secara dinamis untuk diproses selama waktu berjalan.

Atribut atau karakteristik dari proses
Sebuah proses akan mengikuti atribut :
1. ID Proses                          
Merupakan pengenal unik yang ditetapkan oleh sistem operasi
2. Status Proses                    
 Saat proses akan mulai bersiap  untuk diekseskusi, setelah membuat proses tersebut.
3. Register CPU                     
Seperti Penghitung Program (register CPU harus disimpan   dan dipulihkan ketika proses berganti dan di CPU).
5. Informasi akun
6. Informasi status I / O      
Misalnya perangkat yang dialokasikan untuk diproses, buka file, dll
7. Informasi penjadwalan CPU
 Misalnya Prioritas (Proses yang berbeda mungkin memiliki prioritas yang berbeda, misalnya proses singkat dapat diberi prioritas rendah dalam penjadwalan pertama pekerjaan terpendek)
States Process
1. New                           : Proses yang Baru Dibuat (atau) sedang dibuat.
2. Ready                        : Setelah proses penciptaan pindah ke status Siap, yaitu, proses siap untuk dieksekusi.
3. Run                            : Saat ini menjalankan proses dalam CPU (hanya satu proses di dalam satu waktu dapat eksekusi dalam satu prosesor).
4. Wait (or block)       : Saat permintaan proses untuk permintaan I / O.
5. Completed                : Proses Menyelesaikan eksekusinya.
6. Suspended Ready  : Ketika antrian siap menjadi penuh, beberapa proses dipindahkan untuk menangguhkan status siap
7. Suspended Block   : Saat antrian menunggu menjadi penuh.
Setelah memahami perbedaan antara proses dan program serta karakteristik dari proses sekarang akan dibahas antara proses dan thread

PENGERTIAN PROSES
     Sebuah proses, secara umum, adalah serangkaian terus menerus dari tindakan untuk mencapai hasil yang spesifik. Namun, dalam dunia komputer, proses adalah sebuah contoh dari mengeksekusi program komputer. Dengan kata lain, itu adalah konsep dari kejadian tunggal dari program komputer yang berjalan. Proses yang berjalan secara binar akan mengandung satu atau lebih thread.
Menurut jumlah thread yang terlibat dalam proses, ada dua jenis proses, yaitu proses single-thread dan proses multi-thread. Seperti namanya, proses tunggal-thread adalah proses yang hanya memiliki satu thread. Oleh karena itu, thread ini adalah sebuah proses, dan hanya ada satu aktivitas yang terjadi. Dalam proses multi-thread, ada lebih dari satu thread, dan ada lebih dari satu aktivitas yang terjadi
Dua atau lebih proses dapat berkomunikasi dalam setiap menggunakan komunikasi antar-proses lain. Tapi itu cukup sulit dan membutuhkan lebih banyak sumber daya. Ketika membuat proses baru programmer harus melakukan dua hal. Mereka adalah duplikasi proses induk dan alokasi memori dan sumber daya untuk proses baru. Tanenbaum juga berpendapat bahwa proses adalah sebuah program yang dieksekusi yang mencakup program counter, register, dan variabel di dalamnya [MDGR2006]. 
Proses yang dieksekusi mempunyai lima status yang terdiri dari:
a. new             : Pembentukan suatu proses
b. running      : Instruksi-instruksi yang sedang dieksekusi
c. waiting        : Proses menunggu untuk beberapa event yang terjadi
d. ready          : Proses menunggu untuk dialirkan ke pemroses (processor)
e. terminated : Proses telah selesai dieksekusi.

Process Control Block (PCB)
Setiap proses digambarkan dalam sistem operasi oleh sebuah process control block(PCB), juga disebut sebuah control block. PCB berisikan banyak bagian dari informasi yang berhubungan dengan sebuah proses yang spesifik, termasuk hal-hal di bawah ini:
·          Status proses                       
Status yang mungkin adalah new, ready, running, waiting, halted, dan seterusnya.
·          Program counter    
Suatu penghitung yang mengindikasikan alamat dari instruksi selanjutnya yang akan dieksekusi untuk proses tersebut.
·          CPU register
 Register bervariasi dalam jumlah dan tipenya, tergantung pada arsitektur komputer. Register tersebut termasuk accumulator, index register, stack pointer, general–purposes register, ditambah informasi condition–code. Bersama dengan program counter, keadaan/status informasi harus disimpan ketika gangguan terjadi, untuk memungkinkan proses tersebut berjalan/bekerja dengan benar.
·          Informasi manajemen memori
 Informasi ini dapat termasuk suatu informasi sebagai nilai dari dasar dan batas register, tabel page/halaman, atau tabel segmen tergantung pada sistem memori yang digunakan oleh sistem operasi.
·          Informasi pencatatan
 Informasi ini termasuk jumlah dari CPU dan waktu nyata yang digunakan, batas waktu, jumlah account, jumlah job atau proses, dan banyak lagi.
·          Informasi status I/O
 Informasi termasuk daftar dari perangkat I/O yang di gunakan pada proses ini, suatu daftar berkas-berkas yang sedang diakses dan banyak lagi.
PCB hanya berfungsi sebagai tempat penyimpanan informasi yang dapat bervariasi dari proses yang satu dengan yang
 lain.
PENGERTIAN THREAD
                  Dalam dunia IT, thread adalah pelaksanaan instruksi terkecil dari program komputer yang dapat dikelola secara independen sesuai dengan jadwal. Sebuah thread adalah jalan eksekusi sederhana dalam proses. Sebuah thread adalah sebagai proses kuat karena thread bisa melakukan proses apa saja yang bisa dilakukan. Sebuah thread adalah proses ringan dan membutuhkan sumber daya yang lebih sedikit. Thread dapat mulai dari membaca dan menulis ke variabel yang sama dan struktur data variabel. Thread dapat berkomunikasi antara thread dengan mudah.
Saat ini multi-threading telah menjadi pendekatan alami untuk banyak masalah.Sebuah pekerjaan besar dibagi menjadi beberapa bagian dan masing-masing ditugaskan untuk unit eksekusi yang disebut thread. Hal ini memerlukan kehati-hatian pemrograman karena thread berbagi struktur data yang dimodifikasi oleh thread lain pada satu waktu dan juga karena thread berbagi ruang alamat yang sama. Satu keuntungan lebih dari thread adalah bahwa thread menyediakan cara yang efisien dan efektif untuk mencapai paralelisme. 
BEBERAPA KEUNTUNGAN THREAD :
·          Responsif. Aplikasi interaktif menjadi tetap responsif meski pun sebagian dari program sedang diblok atau melakukan operasi yang panjang kepada pengguna. Umpamanya, sebuah thread dari web browser dapat melayani permintaan pengguna sementara thread lain berusaha menampilkan gambar.
·         Berbagi sumber daya. Thread berbagi memori dan sumber daya dengan thread lain yang dimiliki oleh proses yang sama. Keuntungan dari berbagi kode adalah mengizinkan sebuah aplikasi untuk mempunyai beberapa thread yang berbeda dalam lokasi memori yang sama.

PERBEDAAN THREAD DAN PROCESS
·         Pembentukan Thread membutuhkan waktu yang lebih sedikit daripada pembentukan process.
·         Membutuhkan waktu yang lebih sedikit untuk menhakhiri Thread daripada process.
·         Lebih mudah dan cepat untuk melakukan switch antar Thread daripada switch antar process.
·         Thread menggunakan secara bersama ruang alamat dari proses yang menciptakannya. Proses memiliki ruang alamat sendiri-sendiri.
·         Thread memiliki akses langsung ke segmen data dari prosesnya. Masing-masing proses memiliki salinan segmen data dari parent process-nya.
·         Thread dapat saling komunikasi dengan thread lain dalam satu process. Antar proses harus menggunakan komunikasi antar proses.
·         Thread hampir tidak memiliki overhead. Proses memiliki overhead.
·         Thread dapat memiliki pengaruh kontrol yang besar terhadap thread lain dalam satu proses. Proses hanya dapat mengendalikan proses anakannya.
·         Perubahan pada thread utama seperti pembatalan atau perubahan prioritas dapat mempengaruhi tingkah laku thread lain dalam satu proses. Perubahan pada parent proses tidak mempengaruhi proses anakan.

KESIMPULAN :
Proses dan thread dua teknik yang digunakan oleh programmer untuk mengontrol prosesor dan pelaksanaan instruksi pada komputer dengan cara yang efisien dan efektif. Sebuah proses dapat berisi beberapa thread. Thread menyediakan cara yang efisien untuk berbagi memori meskipun beroperasi beberapa eksekusi dari proses. Oleh karena itu, thread merupakan alternatif untuk beberapa proses. Dengan tren yang berkembang menuju prosesor multi-core, thread akan menjadi alat yang paling penting dalam dunia programmer.




PENGANTAR ORGANISASI KOMPUTER


NAMA            : WINARSIH
NRP                  :2103171025
KELAS             :1 D3 IT A
TUGAS            : SISTEM OPERASI (TEORI)
DOSEN            : PAK  FERRY

SOAL :
1.    Jelaskan perbedaan utama Organisasi Komputer dan Arisitektur Komputer? Beri Contohnya.
2.    Gambarkan  Struktur Top Level  komputer  dan  jelaskan masing-masing fungsi?
3.    Gambarkan Struktur Central Processing Unit dan jelaskan masing-masing fungsi?
4.    Gambarkan operasi-operasi komputer dan jelaskan masing-masing fungsi?

JAWABAN :

Perbedaan utama Organisasi Komputer dan Arsitektur Komputer

Arsitektur Komputer adalah  atribut–atribut sistem komputer yang terkait dengan seorang programmer. Contohnya :  set instruksi, aritmetika yang digunakan, teknik pengalamatan, mekanisme I/O.
Organisasi Komputer adalah bagian yang terkait erat dengan unit–unit operasional. Contohnya : teknologi hardware, perangkat antarmuka, teknologi memori, sistem memori, dan sinyal–sinyal kontrol.

Gambar Struktur Top Level  computer

     
Fungsinya :
    a.    CPU merupakan otak sistem komputer, dan memiliki dua bagian fungsi operasional, yaitu:      ALU (Arithmetical Logical Unit) sebagai pusat pengolah data, dan CU (Control Unit) sebagai  pengontrol kerja komputer.
    b.    Input Device (Alat Masukan) berfungsi sebagai alat untuk: memasukan data atau perintah ke dalam komputer . Output Device (Alat Keluaran) berfungsi untuk menampilkan keluaran sebagai hasil pengolahan data. Keluaran dapat berupa hard-copy (ke kertas), soft-copy (ke monitor), ataupun berupa suara.
    c.   System interconnection berfungsi untuk menghubungkan ke CPU, memori utama dan I/O.
    d.   Main memory berfungsi sebagai media penyimpanan data yang berkaitan dengan CPU atau perangkat  I/O.
    e.    Fungsi komputer adalah untuk Operasi Pengolahan Data, Penyimpanan Data, Fungsi Operasi Pemindahan Data Fungsi Operasi Kontrol.

1.      Gambar Struktur Central Processing Unit (CPU)
Fungsinya :

    a)    Arithmetic and Logic Unit (ALU)
     Bertugas membentuk fungsi-fungsi pengolahan data komputer berupa angka biner.
ALU sering disebut mesin bahasa (machine language) karena bagian ini mengerjakan intruksi-intruksi bahasa mesin yang diberikan padanya. Seperti istilahnya ALU terdiri dari dua bagian, yaitu Unit Arithmetika dan unit logika boolean, yang masing-masing memiliki spesifikasi tugas tersendiri.
   b)    Control Unit (CU)
      Bertugas mengontrol operasi CPU dan secara keseluruan mengontrol komputer sehingga terjadi sinkronisasi kerja antar komponen dalam menjalankan fungsi-fungsi operasinya, termasuk dalam tanggung jawab unit kontrol adalah mengambil intruksi-intruksi dari memori utama dan menentukan jenis intruksi tersebut.
   c)     Registers
      Media penyimpanan internal CPU yang digunakan saat proses pengolahan data. Memori ini bersifat sementara, biasanya digunakan untuk menyimpan data saat diolah ataupun data untuk pengolahan selanjutnya.
   d)    Internal CPU Interconnections
      Sistem koneksi dan bus yang menghubungkan komponen internal dan bus-bus eksternal CPU. Komponen internal CPU yaitu ALU, Unit Control dan register-register. Komponen eksternal CPU : sistem lainnya, seperti memori utama, piranti masukan/keluaran. Atau lebih singkatnya memiliki fungsi menghubungkan seluruh bagian dari CPU.
    e)    Internal bus
      Berfungsi untuk mengendalikan semua bagian dalam CPU.

2.      Gambar operasi-operasi komputer  dan fungsinya maisng-masing
·         Operasi ( 1) : Operasi pemindahan data (data movemnet)
Fungsi computer sebagai alat memindahkan data : dengan memindahkan data dari peripheral atau saluran komunikasi ke perangkat lainya.Contoh : keyboard ke screen, Jarak lebih jauh maka proses komunikasi data.
·         Operasi (2) :  Fungsi operasi penyimpan data (data storage)
Data di pindahkan dari lingkungan luar ke penyimpanan computer (baca) dan sebaliknya (tulis)
Contoh : internet download ke disk/hardisk

·         Opserasi (3) :    Fungsi operasi pengolahan data (processing)
Berfungsi untuk melakukan pemrosesan data dari/ke penyimpanan data.
·                     Operasi (4): Fugsi computer sebagai pengolahan data
Berfungsi untuk pengolahan data baik dari penyimpanan atau ke penyimpana.
Contoh : updating bank statement

Demikian artikel kali saya tentang soal dan penjelasan oragnisasi komputer.

                       


Urutan Proses Booting (Boot-Process) pada komputer



Urutan Proses Booting (Boot-Process) pada komputer

Komputer tanpa program yang berjalan hanyalah bagian elektronik yang tidak praktis. Hal pertama yang harus dilakukan komputer adalah sistem operasi. Tugas sistem operasi adalah membantu perangkat keras komputer.  Kali ini akan dibahas mengenai Boot Process yang merupaakan pengambilalihan dari sistem operasi.



Booting komputer adalah proses perjalanan penyalaan komputer awal sampai pengambilalihan sistem operasi secara penuh terhadap perangkat. Proses booting berjalan begiru cepat sehingga kita tidak dapat melihatnya. Setelah menekan tombol power kembali beberapa menit kemudian dan Windows XP, atau Windows Vista, atau apapun Proses Booting dibagi menjadi beberapa jenis yaitu :
  • ·         Proses Cool Booting
Cool booting,  merupakan proses menghidupkan komputer pada saat perangkat komputer itu dalam keadaan mati atau belum menyala. Inilah Booting utama yang dilakukan dengan cara menekan tombol Power.
  • ·         Proses  Warm Booting.
Warm booting, merupakan proses menghidupkan komputer di saat perangkat komputer sudah menyala dan teraliri listrik. Proses ini sering disebut dengan Restart. Tujuannya adalah untuk mengulang kembali proses komputer dari awal karena sebelumnya terjadi beberapa gangguan seperti Crash program atau sekedar ingin melakukan pengaturan ulang sistem. Pada sistem operasi populer seperti Microsoft Windows modern telah tersedia opsi khusus bagi para penggunanya untuk melakukan proses Warm Booting yakni melalui menu Restart.

Fungsi BIOS
POST (Power On Self Test) Power On Self Test terjadi setiap kali menghidupkan komputer . Kedengarannya rumit dan itu karena memang seperti itu. Komputer Anda melakukan banyak hal saat dinyalakan.Ini menginisialisasi berbagai perangkat keras. Ini adalah proses yang penting untuk memastikan agar semua perangkat beroperasi dengan lancar tanpa konflik. BIOS berikut ACPI membuat tabel yang menjelaskan perangkat di komputer.
POST pertama memeriksa bios dan kemudian menguji RAM CMOS. Jika tidak ada masalah dengan hal ini maka POST terus memeriksa CPU, perangkat keras seperti Kartu Video, perangkat penyimpanan sekunder seperti Hard Drive, Floppy Drives, Zip Drive atau CD / DVD Drives. Jika beberapa kesalahan ditemukan maka pesan kesalahan ditampilkan di layar atau sejumlah bunyi bip terdengar. Bunyi beep ini dikenal sebagai kode beep POST.

Master Boot Record
Master Boot Record (MBR) adalah program kecil yang dimulai saat komputer melakukan booting, untuk menemukan sistem operasi (misalnya Windows XP). Proses rumit ini (disebut Proses Boot) dimulai dengan POST (Power On Self Test) dan berakhir saat Bios mencari MBR di Hard Drive, yang umumnya berada di sektor pertama, kepala pertama, silinder pertama (silinder 0 , kepala 0, sektor 1).

Chip BIOS untuk mencari di tempat yang tetap, biasanya pada hard disk bernomor terendah (boot disk) untuk program khusus yang disebut boot loader (di Linux boot loader disebut Grub atau LILO). Boot loader ditarik ke memori dan dimulai. Tugas boot loader adalah menjalankan sistem operasi yang sebenarnya.

Gambar struktur khas  dari MBR :

Bootstrap loader disimpan dalam master boot record (MBR) pada hard drive komputer. Saat komputer dinyalakan atau dihidupkan ulang, komputer pertama kali melakukan self-test power-on, yang juga dikenal sebagai POST. Jika POST berhasil dan tidak ada masalah yang ditemukan, bootstrap loader akan memuat sistem operasi untuk komputer ke dalam memori. Komputer kemudian akan dapat dengan cepat mengakses, memuat, dan menjalankan sistem operasi.

 LILO/GRUB
akan membaca label sistem operasi yang kernelnya akan dijalankan. Pada boot loader inilah sistem operasi mulai dipanggil. Untuk mengkonfigurasi file grub, buka filenya di /boot/grub/grub.conf 

Kernel
Setelah itu, tanggung jawab untuk booting diserahkan ke kernel. Setelah itu, kernel akan menampilkan versi dari kernel yang dipergunakan, mengecek status SELinux, menegecek paritisi swap, mengecek memory, dan sebagainya. 

Init
init adalah langkah terakhir dari urutan boot kernel. Ini mencari file / etc / inittab untuk melihat apakah ada entri untuk initdefault. Ini digunakan untuk menentukan tingkat awal sistem. Tingkat run-level digunakan untuk menentukan status awal sistem operasi.
Beberapa tingkat run level adalah:
Tingkat
0 -> Sistem Berhenti
1 -> mode pengguna tunggal
3 -> Full multiuser mode dengan jaringan
5 -> Full multiuser mode dengan network dan X display manager
6 -> Reboot

Desain init di atas disebut SysV-diucapkan sebagai Sistem five . Beberapa implementati init yang populer adalah systemd dan pemula(upstard) . Upstart sedang digunakan oleh ubuntu sejak tahun 2006.
Berdasarkan pada run-level, script kemudian menjalankan berbagai proses lain yang dibutuhkan oleh sistem sehingga sistem dapat berfungsi dan digunakan. Runlevel adalah suatu parameter yang mengatur servis yang akan dijalankan misalnya single user, reboot, shutdown, dan sebagainya. Program yang mengatur runlevel ini adalah init yang terletak pada direktori /etc/inittab.