Minggu, 28 April 2013

Tugas Kelompok Sistem Operasi


VIRTUAL MEMORY





Dalam ilmu komputer, memori virtual adalah teknik manajemen memori yang dikembangkan untuk kernel multitugas. Teknik ini divirtualisasikan dalam berbagai bentuk arsitektur komputer dari komputer penyimpanan data (seperti memori akses acak dan cakram penyimpanan), yang memungkinkan sebuah program harus dirancang seolah-olah hanya ada satu jenis memori, memori "virtual", yang bertindak secara langsung beralamat memori baca/tulis (RAM).



Virtual memory (Memori maya) :

sistem operasi menyimpan bagian-bagian proses yang sedang digunakan di memori utama dan sisanya di disk.
keuntungan penggunaan memori virtual adalah sebagai berikut:

  • Berkurangnya  proses  I/O  yang  dibutuhkan  (lalu  lintas  I/O  menjadi  rendah).  Misalnya  untuk program butuh membaca dari disk dan memasukkan dalam memory setiap kali diakses.
  • Ruang  menjadi  lebih  leluasa  karena  berkurangnya  memori  fisik  yang  digunakan.  Contoh untuk program  10  MB  tidak  seluruh  bagian  dimasukkan  dalam  memori  fisik.  Pesan-pesan  error  hanya dimasukkan jika terjadi error.
  • Meningkatnya respon, karena menurunnya beban I/O dan memori.
  • Bertambahnya  jumlah  pengguna  yang  dapat  dilayani.  Ruang  memori  yang  masih  tersedia  luas memungkinkan komputer untuk menerima lebih banyak permintaan dari pengguna.



Overlay :

Program dipecah menjadi bagian-bagian yang dapat dimuat memori, jika memori terlalu kecil untuk menampung seluruhnya sekaligus. Overlay disimpan pada disk dan di-keluar-masukkan dari dan ke memori oleh sistem operasi. Pembagian dilakukan oleh programmer.









 Struktur Umum Overlay


Virtual memory dapat diimplementasikan dengan tiga cara, yaitu:

  •  Paging

  •  Segmentasi
  • Kombinasi paging dan segmentasi



1.     Paging

Sistem paging mengimplementasikan ruang alamat besar pada memori kecil menggunakan index register, base register, segment register, dll.



Istilah pada sistem paging:

-       Alamat virtual = V; Alamat yg dihasilkan dgn perhitungan menggunakan index register, base register, segment reg dsb.

-       Alamat nyata (real address = R); Alamat yang tesedia di memori utama fisik.

-       Page; Unit terkecil virtual address space.

-       Page frame; Unit terkecil memori fisik.

-       Page fault; Permintaan alokasi page ke memori yang belum dipetakan.

-       MMU (Memory Management Unit); Chip atau kumpulan chip yang memetakan alamat maya ke alamat fisik.





          

                     Relasi Antara Alamat Virtual dan Alamat Fisik

Materi selanjutnya bisa dilihat di :

Sumber: 




Senin, 01 April 2013

Tugas Sistem Operasi



   Proses dan Thread

Sebuah proses adalah sebuah peristiwa adanya sebuah program yang dapat dieksekusi. Sebagai sebuah eksekusi proses, maka hal tersebut membutuhkan perubahan keadaan. Keadaan dari sebuah proses dapat didefinisikan oleh aktivitas proses tersebut. Suatu proses adalah lebih dari kode program, dimana kadang kala dikenal sebagai bagian tulisan. Proses juga termasuk aktivitas yang sedang terjadi, sebagaimana digambarkan oleh nilai pada program counter dan isi dari daftar prosesor/ processor’s register. Suatu proses umumnya juga termasuk process stack, yang berisikan data temporer (seperti parameter metoda, address yang kembali, dan variabel lokal) dan sebuah data section, yang berisikan variabel global. Setiap proses mungkin menjadi satu dari beberapa state berikut, antara lain: new, ready, running, waiting, atau terminated. Setiap proses direpresentasikan ada sistem operasi berdasarkan proses-control-block (PCB)-nya.
  
Saya tekankan bahwa program itu sendiri bukanlah sebuah proses. Suatu program adalah satu entitas pasif, seperti isi dari sebuah berkas yang disimpan didalam disket, sebagaimana sebuah proses dalam suatu entitas aktif, dengan sebuah program counter yang mengkhususkan pada instruksi selanjutnya untuk dijalankan dan seperangkatsumber daya/resource yang berkenaan dengannya.

Proses memiliki dua karakteristik namun kedua karakteristik dilakukan secara independen oleh sistem operasi :
- Resource ownership (kepemilikan sumber daya)
Proses mempunyai ruang alamat virtual untuk menangani image proses yang didefinisikan dalam PCB.
- Scheduling-execution (penjadwalan-eksekusi)
Mengikuti suatu path eksekusi (trace), ada pergatian dari satu proses ke lainnya Unit dari kepemilikan sumber daya diacu sebagai proses atau taskuatu thread yang salah dapat menganggu thread yang lain didalam proses yang sama,karena thread berbagai pakai ruang memori virtual dan sumber daya lain yang sama.


Thread adalah unit dasar dari penggunaan CPU, thread mengandung Thread ID, program counter, register set, dan stack. Sebuah Thread berbagi code section, data section, dan sumber daya sistem operasi dengan Thread lain yang dimiliki oleh proses yang sama. Thread juga sering disebut lightweight process. Sebuah proses tradisional atau heavyweight process mempunyai thread tunggal yang berfungsi sebagai pengendali. Perbedaan antara proses dengan thread tunggal dengan proses dengan thread yang banyak adalah proses dengan thread yang banyak dapat mengerjakan lebih dari satu tugas pada satu satuan waktu.

Perbedaan proses dan thread?
1.Pembentukan Thread membutuhkan waktu yang lebih sedikit daripada pembentukan process.
2.Membutuhkan waktu yang lebih sedikit untuk menhakhiri Thread daripada process.
3.Lebih mudah dan cepat untuk melakukan switch antar Thread daripada switch antar process.
4.Thread menggunakan secara bersama ruang alamat dari proses yang menciptakannya. Proses memiliki ruang alamat sendiri-sendiri.
5.Thread memiliki akses langsung ke segemen data dari prosesnya. Masing-masing proses memiliki salinan segmen data dari parent process-nya.
6.Thread dapat saling komunikasi dengan thread lain dalam satu process. Antar proses harus menggunakan komunikasi antar proses.
7.Thread hampir tidak memiliki overhead. Proses memiliki overhead.
8.Thread dapat memiliki pengaruh kontrol yang besar terhadap thread lain dalam satu proses. Proses hanya dapat mengendalikan proses anakannya.
9.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.

Single thread dan multi thread
1.Single thread >> process hanya mengeksekusi satu thread saja pada satu waktu
2.Multi thread >> process dapat mengeksekusi sejumlah thread dalam satu waktu.




Model Multithread
Sebelumnya, perlu diketahui apa itu user thread dan kernel thread.
User thread >> pengelolaan thread dilakukan oleh user level (pengguna)
Kernel thread >> pengelolaan thread dilakukan oleh kernel komputer User tidak dapat menginterupsi.

Model-model multithreading :
1. Many to one.
- Beberapa thread user-lever dipetakan ke dalam single kernel thread
- Penggunaannya pada sistem tidak memerlukan dukungan kernel thread


 

      2. One to one
- Setiap user-level thread dipetakan ke kernel thread.
- Contoh : Windows 95/98/NT/2000


 
      3. Many to many
- Membolehkan setiap user-level thread dipetakan ke banyak kernel thread
- Membolehkan sistem operasi membuat sejumlah kernel thread
- Contoh : Windows NT/2000 dengan paket ThreadFiber 10, Solaris 2


Process State
Status proses selalu berubah-ubah selama suatu program dieksekusi atau dijalankan. Beberapa status tersebut ialah :
- New : proses baru diciptakan
- Running : proses sedang dijalankan
- Waiting : proses sedang menunggu suatu kondisi tertentu untuk bisa berjalan. (misalkan menunggu respon dari perangkat I/O)
- Ready : proses menunggu untuk dilayani 
processor
- terminated : proses telah menyelesaikan eksekusi.

 
 Diagram status proses

Process Control Block (PCB)
Sistem operasi membutuhkan banyak informasi mengenai proses guna pengelolaan proses. Semua informasi ini ada pada PCB. PCB mengandung beberapa informasi seperti berikut :
1. Process State >> berisi informasi status proses. (new,running,waiting,ready,terminated)
2. Program counter >> berisi informasi mengenai alamat instruksi yang akan digunakan selanjutnya.
3. CPU register >> berisi register2 CPU apa saja yang digunakan
4. CPU scheduling information >> berisis penjadwalan proses beserta algoritmanya
5. Memory management information >> berisi informasi tentang berapa jumlah memory yang digunakan, limit register, tabel segment, dll berkenaan dengan penggunaan memory.
6. I/O status information >> berisi informasi tentang perangkat apa saja yang digunakan dalam proses
7. Accounting >> berisi informasi tentang statistik eksekusi proses seperti waktu yang diperlukan, jumlah proses, dll.


 
 Diagram PCB




Kesimpulan:
Proses dan Thread merupakan dua bagian yang saling berhubungan dan berkaitan. Suatu 
program yang sedang dieksekusi merupakan pengertian dari sutau proses. Proses 
membutuhkan sumber daya. Sistem operasi mengeksekusi proses dengan dua cara yaitu batch 
system  yang mengeksekusi  jobs  dan  time-shared system  yang mengatur pengeksekusian 
program pengguna ( user) atau tasks. Proses berisikan stack yang menyimpan alamat register 
dan juga alamat dari sebuah instruksi yang berisikan data  – data  yang dibutuhkan untuk 
instruksi selanjutnya. Program Counter, register set serta stack merupakan bagian dari thread. 
Thread berbagi code section, data section dan juga sumber daya sistem operasi dengan thread 
lain yang dalam proses yang  sama. Kelebihan thread antara lain responsif, berbagi