Minggu, 23 September 2012

Diskusi 2
TIPE DATA, SATUAN TIPE DATA, STRUKTUR DATA, DAN HUBUNGANNYA DENGAN MANAJEMEN MEMORY

Tipe Data

Arti

  • Jenis data yang mampu ditangani oleh suatu bahasa pemrograman pada komputer
Setiap tipe data harus bisa dilakukan
  • deklarasi
  • operasi
dan memiliki
  • objek data
Secara garis besar tipe data dapat dikategorikan menjadi:
1.                    Type data sederhana:
a.        Tipe data sederhana tunggal, misalnya Integer, real, boolean dan karakter (char).
b.        Tipe data sederhana majemuk, misalnya String

a. Integer ( Bilangan Bulat )
Integer merupakan nilai bilangan bulat baik dalam bentuk desimal maupun hexadecimal. Tipe data numerik yang termasuk integer adalah sebagai berikut :
- Byte : Memiliki nilai integer dari -128 sampai +127 dan menempati 1 byte ( 8 bits ) di memori
- Short : Memiliki nilai integer dari -32768 sampai 32767 dan menempati 2 bytes ( 16 bits ) di memori
- Int : Memiliki nilai integer dari -2147483648 sampai 2147483647 dan menempati 4 bytes ( 32 bits ) di memori
-Long : Memiliki nilai dari -9223372036854775808 sampai 9223372036854775807 dan menempati 8 bytes ( 64 bits ) di memori. 

b. Char
Char adalah karakter tunggal yang didefinisikan dengan diawali dan diakhiri dengan tanda ‘ ( petik tunggal ).

c. String
Merupakan urutan-urutan dari karakter yang terletak di antara tanda petik tunggal. Nilai data string akan menempati memori sebesar banyaknya karakter string ditambah dengan 1 byte. Bila panjang dari suatu string di dalam deklarasi variabel tidak disebutkan, maka dianggap panjangnya adalah 255 karakter.

d. Real
Nilai konstanta numeric real berkisar dari 1E-38 sampai 1E+38. E menunjukkan nilai 10 pangkat, dan tipe data ini menempati memori sebesar 6 byte.

e. Boolean
Tipe data boolean terdiri dari dua nilai saja, yaitu true dan false. Boolean sangat penting dalam mengevaluasi suatu kondisi, dan sering digunakan untuk menentukan alur program.

Pembagian

  • Tipe data sederhana tunggal 
    • boolean
      • tipe data =  logika
      • operator
        • logika
          • not, and, or(dalam bahasa pascal), !, &, | (dalam bahasa C, Java)
    • Integer
      • tipe data = bilangan bulat
      • operator
        • aritmatika
          • + - * / div, mod( dalam bahasa pascal),  /, %( dalam bahasa C, Java)
        • perbandingan
          • > < = <>(dalam bahasa pascal), != (dalam bahasa C, Java)
          • operator logika
    • Real
      • tipe data = bilagan desimal
      • operator
        • aritmatika
        • perbandingan
    • Char
      • tipe data = karakter
      • operator
        • perbandingan
  • Tipe data sederhana majemuk
    • String
      • tipe data = string
      • Operator
        • perbandingan

Satuan Tipe Data

     Satuan tipe data yang ada sekarang diantaranya :
bit = merupakan satuan data (digit bine) yang paling kecil berisi angka biner (1 atau   0)
nibble = satuan data berukuran 4 bit
Byte = satuan data gabungan dari 8 bit
word = satuan data yang lebih besar dari Byte, dan bisa berukuran 8 bit/ 16 bit/ 32 bit/ 64 bit
double word = satuan data yang besarnya 2 kali word
KiloByte(KB) = 1024 Byte 
MegaByte(MB) = 1024 KB
GigaByte(GB) = 1024 MB
TeraByte(TB) = 1024 GB

Struktur Data

    Struktur Data adalah cara penyimpanan, penyusunan dan pengaturan data di dalam media penyimpanan komputer sehingga data tersebut dapat digunakan secara efisien. Struktur data berarti tata letak data yang berisi kolom-kolom data, baik itu kolom yang tampak oleh pengguna (user) atau pun kolom yang hanya digunakan untuk keperluan pemrograman yang tidak tampak oleh pengguna. Setiap baris dari kumpulan kolom-kolom tersebut dinamakan catatan (record). Lebar kolom untuk data dapat berubah dan bervariasi.
     Ada kolom yang lebarnya berubah secara dinamis sesuai masukan dari pengguna, dan juga ada kolom yang lebarnya tetap. Dengan sifatnya ini, sebuah struktur data dapat diterapkan untuk pengolahan database (misalnya untuk keperluan data keuangan) atau untuk pengolah kata (word processor) yang kolomnya berubah secara dinamis.

Manajemen Memory

     Dalam prosesnya satuan tipe data dan struktur data saling terhubung terutama dalam manajemen memory. Dalam manajemen memory ada beberapa cara pemrosesan seprti STACK atau Queue. Dalam STACK (Tumpukan) proses manajemen memory berlangsung dengan cara LIFO (Last In First Out) jadi saat sejumlah satuan data masuk ke RAM untuk diproses data yang terakhir masuklah yang pertama kali diproses karena data yang masuk disusun bertumpuk jadi data terakhirlah yang berada paling atas. Sedangkan dalam Queue (Antrian) proses manajemen memory berlangsung dengan cara FIFO (First In First Out) jadi saat sejumlah satuan data masuk ke RAM untuk diproses data yang pertama kali masuklah yang akan diproses terlebih dahulu karena data yang masuk disusun menjadi antrian perintah.


Fungsi manajemen memori :
1. Mengelola informasi memori yang dipakai dan tidak dipakai.
2. Mengalokasikan memori ke proses yang memerlukan.
3. Mendealokasikan memori dari proses yang telah selesai.
4. Mengelola swapping antara memori utama dan disk.









Diskusi 1
Proses Control Block (PCB)

A. Program Control Block (PCB)

Process Control Block (PCB) adalah informasi-informasi lain yang diperlukan SO untuk mengendalikan dan koordinasi beragam proses aktif. PCB dibaca dan dimodifikasi secara rutin oleh sistem operasi seperti penjadwalan, alokasi sumber daya, pemrosesan interupsi, monitoring dan analisis kinerja. Kumpulan PCB mendefinisikan state sistem operasi. Untuk menyatakan senarai proses di sistem operasi dibuat senarai PCB.

Struktur data PCB menyimpan informasi lengkap mengenai proses sehingga dapat terjadi siklus hidup proses. Sistem operasi memerlukan banyak informasi mengenai proses guna pengelolaan proses. Informasi ini berada di PCB. Process Control Block berisikan banyak bagian dari informasi yang berhubungan dengan sebuah proses yang spesifik, termasuk dibawah ini :
  1. Status Proses  :  Status new, ready, running, waiting, halted, dan juga banyak lagi.
  2. Program Counter  :  Suatu stack yang berisi alamat dari instruksi selanjutnya untuk dieksekusi untuk proses ini.
  3. CPU Register  :  Register bervariasi dalam jumlah dan jenis, tergantung pada rancangan komputer. Register tersebut termasuk : accumulator, register indeks, stack pointer, general-purposes register, ditambah code information pada kondisi apa pun. Besertaan dengan program counter, keadaan/status informasi harus disimpan ketika gangguan terjadi, untuk memungkinkan proses tersebut berjalan/bekerja dengan benar setelahnya.
  4. Informasi Manajemen Memori  :  Informasi ini dapat termasuk suatu informasi sebagai nilai dari dasar dan batas register, tabel halaman, atau tabel segmen tergantung pada sistem memori yang digunakan oleh sistem operasi.
  5. Informasi Pencatatan  :  Informasi ini termasuk jumlah dari CPU dan waktu riil yang digunakan, batas waktu, jumlah akun, jumlah job atau proses, dan banyak lagi.
  6. 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.
  7. Proses Control Block hanya berfungsi sebagai tempat menyimpan/gudang  informasi apapun yang dapat bervariasi dari suatu proses ke proses ini.
B. Kelompok Informasi PCB (3 elemen PCB)

Informasi PCB dikelompokkan menjadi 3 kelompok, yaitu:

1. Informasi identifikasi proses

       Informasi ini berkaitan dengan identitas proses yang berkaitan dengan tabel lainnya.
Informasi tersebut meliputi :
- Identifier proses
- Identifier proses yang menciptakan
- Identifier pemakai

2. Informasi status pemroses
       Informasi tentang isi register-register pemroses. Saat proses berstatus running, informasi tersebut berada diregister-register. Ketika proses diinterupsi, semua informasi register harus disimpan agar dapat dikembalikan saat proses dieksekusi kembali. Jumlah dan jenis register yang terlibat tergantung arsitektur komputer.
Informasi status terdiri dari :
- Register-register yang terlihat pemakai
      Adalah register-register yang dapat ditunjuk instruksi bahasa assembly untuk diproses pemroses.
- Register-register kendali dan status
      Adalah register-register yang digunakan untuk mengendalikan operasi pemroses.
- Pointer stack
      Tiap proses mempunyai satu atau lebih stack, yang digunakan untuk parameter atau alamat prosedur pemanggil dan system call. Pointer stack menunjukkan posisi paling atas dari stack.

3. Informasi kendali proses
         Adalah informasi lain yang diperlukan sistem operasi untuk mengendalikan dan koordinasi beragam proses aktif.Informasi kendali terdiri dari :

I. Informasi penjadwalan dan status
         Informasi-informasi yang digunakan untuk menjalankan fungsi penjadwalan antara lain :
- Status proses
     Mendefinisikan keadaan/status proses (running, ready, blocked)
- Prioritas
     Menjelaskan prioritas proses.
- Informasi berkaitan dengan penjadwalan
     Berkaitan dengan informasi penjadwalan, seperti lama menunggu, lama proses terakhir dieksekusi.
- Kejadian
     Identitas kejadian yang ditunggu proses.

II. Penstrukturan Data
     Satu proses dapat dikaitkan dengan proses lain dalam satu antrian atau ring, atau struktur lainnya. PCB harus memiliki pointer untuk mendukung struktur ini.

III. Komunikasi Antar Proses
     Beragam flag, sinyal dan pesan dapat diasosiasikan dengan komunikasi antara dua proses yang terpisah.

IV. Manajemen Memori
     Bagian yang berisi pointer ke tabel segmen atau page yang menyatakan memori maya (virtual memori) proses.

V. Kepemilikan dan utilisasi sumber daya
     Sumber daya yang dikendalikan proses harus diberi tanda, misalnya :
- Berkas yang dibuka
- Pemakain pemroses
- Pemakaian sumber daya lainnya
Informasi ini diperlukan oleh penjadwal.