Perbedaan Single Buffer dan Double Buffer

14.31 viia 0 Comments

a. Single buffering

Model single-buffered menulis pixels secara langsung ke dalam memori framebuffer yang aktif hasil parsial kemudian terlihat ini adalah terutama nyata ketika berusaha untuk membuat animasimerupakan teknik paling sederhana. Ketika proses memberi perintah untuk perangkat I/O, sistem operasi menyediakan buffer memori utama sistem untuk operasi.Untuk perangkat berorientasi blok.Transfer masukan dibuat ke buffer sistem. Ketika transfer selesai, proses memindahkan blok ke ruang pemakai dan segera meminta blok lain. Teknik ini disebut reading ahead atau anticipated input. Teknik ini dilakukan dengan harapan blok akan segera diperlukan. Untuk banyak tipe komputasi, asumsi ini berlaku. Hanya di akhir pemrosesan maka blok yang dibaca tidak diperlukan.

b. Double buffering

Teknik untuk menggambar grafik yang menunjukkan tidak ada (atau kurang) merobek ,meliuk dan artefak lainnya. Peningkatan dapat dibuat dengan dua buffer sistem.Proses dapat ditransfer ke/dari satu buffer sementara sistem operasi mengosongkan (atau mengisi) buffer lain. Teknik ini disebut double buffering atau buffer swapping. Double buffering menjamin proses tidak menunggu operasi I/O.Peningkatanini harus dibayar dengan peningkatan kompleksitas.


referensi : http://sayadalaminformatika.blogspot.com/2012/05/buffering-bufferadalah-area-memori-yang.html


0 komentar:

Memory management(chapter 11-12)

09.07 viia 0 Comments



Kebutuhan memanage memory :
1.       Relocation
2.       Protection
3.       Sharing
4.        Logical organization
5.       Physical organization

Addressing
·         Logical: merupakan lokasi memori yang tidak bergantung dari tugas dari data ke memori. Penerjemahan harus dibuat pada physical address.
·         Relative: alamat yang ditampilkan sebagai lokasi relatif dari lokasi yang ditunjuk.
·         Physical: alamat mutlak atau lokasi sebenarnya dalam memori utama.

Memory allocation algorithm
1.       First fit : mencari memori paling pertama yang ukuran pas dari paling depan
2.       Next fit : cari dari tempat itu lalu cari setelahnya kosong atau tidak?
3.       Best fit : cari memori paling deket , kemudian masukin
4.       Worst fit: selalu mencari ruang besar yang tersedia sehingga ruang dapat dipecah menjadi cukup besar, agar berguna untuk proses-proses berikutnya.
5.       Quick fit : nyari yang tercepat
6.       Buddy system:  semua blok memori yang tersedia diperlakukan menjadi satu blok yang dilambangkan dengan 2U. Jika suatu  proses meminta ukuran blok sebesar s ( 2U-1 < s <=2U), maka blok 2U akan dibagi menjadi 2 dan dibandingkan apakah ukurannya sudah sesuai dengan s atau belum jika belum maka blok akan dibagi lagi samapi ukuran sesaui dengan porsi s.

Fungsi Manajemen Memori
 ·            Mengelola informasi yang dipakai dan tidak dipakai
      ·             Mengalokasikan memori ke proses yang memerlukan.
      ·            Mendealokasikan memori dari proses telah selesai.
      ·            Mengelola swapping atau paging antara memori utama dan disk.
 Memory Partitioning

·         Fixed Partitioning
Memori dibagi menjadi blok-blok yang  berukuran tetap. Ada 2 tipe pembagian ukuran: pembagian yang semua ukurannya sama dan ada yang berbeda satu sama lain. Sehingga setiap proses baik yang besar atau peun yang kecil akan diletakan pada blok yang kosong tidak peduli ukurannya terlalu besar atau terlalu kecil blok memorinya.
·         Dinamyc Partitioning
Pembagian dibagi berdasarkan panjang variable dan nomer dari proses. Proses dialokasikan pada suatu blok sesuai dengan yang dibutuhkannya. Tetapi pada saat penempatan proses terdapat lubang antar prosesnya yang biasa disebut eksternal fragmetnation.
Swapping merupakan pemindahan proses dari memori utama ke disk dan kembali lagi. Sebuah proses harus berada di memori untuk dieksekusi. Proses juga dapat ditukar (swap) sementara keluar memori ke backing store dan kemudian dibawa kembali ke memori untuk melanjutkan eksekusi.

(a)    Mengalokasikan uang untuk segmen data
(b)  Mengalokasikan ruang untuk stack dan segmen data

0 komentar:

Proses dan Threads (chapter 4-5-6)

09.01 viia 0 Comments



Sistem operasi mengeksekusi berbagai jenis program. Pada sistem batch program tersebut biasanya disebut dengan job, sedangkan pada sistem time sharing, program disebut dengan program user atau task .

Proses adalah program yang sedang dieksekusi. Eksekusi proses dilakukan secara berurutan. Dalam suatu proses terdapat program counter, stack  dan daerah data.
Ketika program dijalankan, proses dapat secara unik dikategorikan ke sejumlah elemen:
  •          Identifier: untuk membedakan dari semua proses.
  •         State: ketika proses berjalan, menghasilkan running state.
  •         Priority: tingkatan prioritas dari setiap proses.
  •         Program Counter: alamat dari instruksi selanjutnya dalam program yang akan dijalankan.
  •         Memory pointers: merupakan pointer bagi kode program dan data yang berhubungan dengan proses, serta blok memori yang di bagikan dengan proses lainnya.
  •       Context data: data yang terdapat pada register dalam processor ketika program dijalankan.         I/O status information: permintaan I/O, perangkat I/O yang di assign ke proses.
  •         Accounting information: jumlah dari waktu processor dan waktu yang digunakan, batas waktu, jumlah account dll.
Proses State
·         Running: proses yang sedang dijalankan.
·         Ready: Proses yang disiapkan unruk menjalankan tanggung jawab yang diberikan.
·         Blocked/Waiting: proses yang tidak dapat mengeksekusi sama terjadi event.
·         New: proses yang telah dibuat tapi belum diakui ke dalam proses
Jika sistem opeasi bertugas memanage proses dan resource, maka dibutuhkan infirmasi tentang status saat ini dari setiap proses dan resource. Semua operating sistem memaintain informasi dalam 4 kategori.
·         Memory table digunakan untuk tetap pada main memory dan secondary memori.
·         I/O table digunakan sistem operasi untuk memanaje perangkat I/O dan saluran dari sistem komputer.
·         File table digunakan untuk menyediakan informasi tentang keberadaan file, lokasi file dalam secondary memori, status file saat ini, dan atribut lainnya.
·         Proses table berfungsi dimana proses ditempatkan. Atribut-atribut yang dibutuhkan untuk       manajemennya  adalah proses id, process state, dan lokasi dalam memori.

·         Process Location
      Proses merupakan kumpulan dari program yang akan dijalankan. Setiap proses berhubungan   dengan jumlah atribut yang digunakan oleh sistem operasi untuk mengontrol proses.

 Penciptaan proses terjadi karena terdapat batch baru. Sistem operasi dengan kendali batch job,setelah menciptakan proses baru, kemudian melanjutkan membaca job selanjutnya.  Untuk menciptakan sebuah proses, ada beberapa tahapan yang dijalankan: 
                  1.  Memberikan identifikasi unik proses untuk proses baru.
                2.  Mengalokasikan ruang untuk proses.
                3.  Menginisialisasi blok kontrrol proses
           4.  Mengeset hubungan yang tepat, sebagai contoh OS memaintain setiap antrian                penjadwalan sebagai linked list, lalu proses baru harus diletakkan dalam list Ready atau    Ready/Suspend.
                5.  Menciptakan proses lain.

   Waktu kapan pengentian proses terjadi:
                    -     Normal exit (voluntary)
                    -     Error exit (voluntary)
                    -     Fatal Error (involuntary)
                    -     Killed by antother process (involuntary)  

    Alasan penghentian sebuah proses, karena:

                   
                    - Melebihi batas waktu
                    - Memori tidak tersedia
                    - Eror aritmatika
                    - Kegagalan I/O
                    - Data misuse
                    - Bounds violation

      Penggantian Proses 
                Dalam waktu yang sama, proses yang sedang berjalan disela oleh proses lain yang diassign oleh sistem operasi ke status Running.
        Alasan penggantian proses:
             - Clock interrupt
             - I/O interrupt
             - Memory fault 

   Multiprogramming
Kombinasi eksekusi dari dua atau lebih program yang berbeda. Area yang digunakan untuk masing-masing job disimpan secara serentak pada memory utama yang disebut dengan memory partition.

       Penciptaan proses dalam multiprogramming menggunakan pemanggilan sistem :
              - system()
              - fork()
              - exec() 

Thread
}  Thread merupakan unit dasar dari penggunaan CPU
}  Thread terdiri dari Thread_ID, program counterregister set, dan stack
}  Thread juga sering disebut lightweight process
Multithreading
}  Situasi dimana sebuah aplikasi diperlukan untuk menjalankan beberapa tugas yang serupa
}  Contohnya adaah sebuah web server yang dapat mempunyai ratusan klien yang mengaksesnya secara concurrent
Keuntungan Thread
  1. Responsi: Membuat aplikasi yang interaktif menjadi multithreading dapat membuat sebuah program terus berjalan meskipun sebagian dari program tersebut diblok atau melakukan operasi yang panjang, karena itu dapat meningkatkan respons kepada pengguna. Sebagai contohnya dalam web browser yang multithreading, sebuah thread dapat melayani permintaan pengguna sementara thread lain berusaha menampilkan image.
2.       Berbagi sumber daya: thread berbagi memori dan sumber daya dengan thread lain yang dimiliki oleh proses yang sama. Keuntungannya adalah mengizinkan sebuah aplikasi untuk mempunyai beberapa thread yang berbeda dalam lokasi memori yang sama.
3.       Bisa saling berkomunikasi antar thread

Implementasi Thread
1.       User space
Keuntungannya :
                Adanya algoritma scheduling , performance lebih bagus
Kerugian :
                Pada saat memproses thread maka prosesnya akan diblok menunggu sampai proses thread selesai
2.       Kernel space
Keuntungan : tidak mebutuhkan non blocking
Kerugian : biaya yang dibutuhkan berat pada saat membuat thread dan menglepaskan thread
tersebut.

Pop-Up Thread
                Thread yang muncul sendiri dalam 1 proses yang ada thread , ketika ada pesan masuk muncul 1 thread untuk menerima pesan tersebut.

Fungsi dari kernel system operasi ada 4 yaitu :
1.       Process management
a.       Process creation and termination
b.      Process scheduling and dispatching
c.       Process switching
d.      Process synchronization and support for inteprocess communication
e.      Management of process control blocks
2.       Memory management
a.       Allocation of address space to process
b.      Swapping
c.       Page and segment management
3.       I/O management
a.       Buffer management
b.      Allocation of I/O channels and devices to process
4.       Support functions
a.       Interrupt handling
b.      Accounting
c.       Monitoring

Pthread  life cycle
Relasi antara thread dan proses
Thread:process
Description
Example system
1:1
Adanya 1 thread yang dapat menghandle 1 process
Traditional UNIX implementation
1:M
Adanya 1 thread yang dapat menjalankan proses yang banyak sekaligus
Windows NT,Solaris,linux,OS/2,OS/390,MACH
M:1
Adanya 1 process yang di handle oleh banyak thread
Ra(clouds),Emerald
M:M
Kombinasi dari 1:M dan M:1
TRIX



Tingkah laku dari proses ada 2 :
1.       Process bound
2.       I/O bound
CPU scheduler
Tugas dari CPU adalah untuk memastikan tidak ada aplikasi yang mensalahgunakan
Memilih diantara proses yang ready kemudian dialokasikan tugas processor gak ada aplikasi yang mensalah gunakan kekuasaannya .
Cpu scheduling meutuskan ketika sebuah proses:
-          Switches dari running ke state waiting
-          Switches dari running ke state ready
-          Switches dari waiting ke ready
-          Terminates
Dispatcher latency : waktu dia stop suatu proses dan minta proses lain yang dibutuhkan .
Kriteria untuk scheduling :
1.       CPU utilization : Penggunaan CPU dimana cpu harus bekerja
2.       Throughput: setiap waktu ada berapa jumlah proses yang telah diselesaikan
3.       Turnaround time : seberapa lama proses tersebut diesekusi
4.       Waiting time : seberapa lama proses tersebut menunggu
5.       Respone time :  respon menjawab saat pertama kali tetapi bukan output

Kriteria optimisasi :
1.       Max CPU utilization
2.       Max throughput
3.       Min turnaround time
4.       Min waiting time
5.       Min response time

Tujuan dari scheduling
o   All systems
o   Fairness – semua golongan dibagi sama rata
o   Policy enforcement – seperti kebijakan
o   Balance – menjaga semua bagian dari system yang sibuk
o   Batch systems
o   Throughput- memaksimalkan pekerjaan per jam
o   Turnaround time – meminimalisasi waktu antara submission dan termination
o   CPU utilization – menjaga CPU yang sibuk semua waktu
o   Interactive systems
o   Response time –merespon untuk merequest secara cepak
o   Proportionality-ketika sebuah proses yang diinginkan tidak sesuai dengan hasilnya
o   Real-time systems
o   Meeting deadlines – data tidak ada yang boleh hilang
o   Predictability – penurunan kualitas dalam multimedia system

Batch scheduling Algorithm
First-Come First-Serve


                Memproses pada saat request langsung
                Keuntungan : mudah dimengerti dan mudah unutk dipahami
                Kerugian : pekerjaan yang harusnya bisa dikerjakan secara singkat harus menunggu lama .

Shortest Job First

                Kalo ada pekerjaan yang lebih ringan akan dikerjakan terlebih dahulu
                Ada 2 macam :
  • Nonpreemptive : proses yang sedang berjalan tidak  akan bisa diintrupsi jika ada proses yang jalannya lebih singkat
  •                                 Preemptive : proses baru yang dating dengan waktu yang kurang dari sisa waktu yang lebih pendek maka akan dijalankan duluan
Link:
www.binus.ac.id
www.skyconnectiva.com

0 komentar:

Deadlock(chapter 9-10)

15.14 viia 0 Comments



Deadlock merupakan sekumpulan proses dikatakan deadlock jika masing-masing proses menunggu
Kondisi sumber terjadinya deadlock :
1.       Mutual exclusion : Cuma ada 1 proses yang menggunakan sebuah resource
2.       Hold and wait : proses 1 pegang resources tapi au ambil resource lain
3.       No preemption : bisa di interupsi (preemption) ,tidak akan memberikan resource sampe rela melepaskan karena proses tersebut belum selesai digunakan
4.       Circular wait : saling menunggu proses 1 dengan proses yang lain



Deadlock Modelling
Resource allocation graphs
a.       Holding resources
b.      Requesting a resource
c.       Deadlock



Strategi yang harus digunakan untuk menyelesaikan deadlock :
1.       Hidnari masalah biarkan masalah tersebut terjadi dan hadapi masalah tersebut .
2.       Ada 2 printer dimana terdeteksi erornya , maka catat kapan terjadinya , besok-besok tidak boleh terulang lagi errornya
3.       Mencari penyebab masalah menggunakan resource seminimal mungkun , mengarahkan masalah lihat dulu kemudian diubah jalurnya , saat sudah tahu akan terjadi maslaah maka hendaknya dihindari .
4.       Sifatnya mencegah tapi sulit karena tidak dapat mencegah sesuatu secara tiba-tiba
Deadlock avoidance  
1.       Harus tau berapa jumlah resource yang dibutuhkan dan resource yang sudah ada
2.       The deadlock-avoidance algorithm : digunakan untuk menguji resources allocation state untuk memastikan bahwa tak akan terjadi kondisi circular.
3.       Resource allocation : digunakan untuk mendefinisikan berapa jumlah resource yang dibutuhkan dan berapa jumlah yang ada
Algoritma safe and unsafe :
1.       Jika request<= kebutuhan(need) maka dibolehin , selain itu error
2.       Jika dia request dan barangnya ada maka langsung ke proses 3 kalo tidak maka wait
3.       Available=available-request
Allocation =allocation +request
Need =need +request
Demonstrasi diatas menandakan bahwa unsafe state


Demonstrasi diatas menandakan bahwa safe state


Link:
www.binus.ac.id
www.skyconnectiva.com



0 komentar:

Concurrency (chapter 7-8)

14.32 viia 0 Comments


Untuk mengatasi concurrency :
1.       Multiple application : programmnya yang concurrent
2.       Structured application : prosessnya yang concurrent
3.       Operating-system structure : threadnya yang concurrent
Masalah dalam concurrency :
1.       Sharing global resources : ex printer
2.       Management of allocation of resources : alokasi memori lebih aman
3.       Programming errors difficult to locate : ex bisa terjadi deadlock jika concurrency tidak diatur
OS Concerns
1.       Mencari tahu dulu proses yang aktif apa saja sehingga bisa menimbulkan concurrency problem
2.       Resources yang perlu di allocate dan deallocate
3.       Melindungi data dan resources
4.       Hasil prosesnya harus independent dari hasil esekusi dari proses lain
Kompetisi antar proses
1.       Mutual exclusion
a.       Critical sections
Hanya 1 program pada satu waktu yang dikasi hak khusus
2.       Deadlock
3.       Starvation
Dia mikirnya ada yang make padahal tidak ada
Mutual Exclusion
·         Adanya 1 proses yang bisa menggunakan resources yang sifatnya critical
·         Tidak adanya deadlock
·          Local variables
·         Interrupt Disabling
·         Kalo interrupt bisa ekslusif
·         Multiprocessing : banyak proses kalo kita Cuma disable 1 interupt di satu proses maka bisa saja kemungkinan terjadi interrupt threadnya , walaupun sudah eksklusif maka tidak menutup kemungkinan ada interrupt pada threadnya sehingga harus dipikirkan juga
Semaphores
Nilai integer yang digunakan uuntuk memberi signal diantara proses-proses dalam menjalankan suatu proses semaphores akan dikasih tanda apa saja yang harus dilakukan.

Masalah Producer-Consumer
o   Dia gak akan bisa ke konsumen sebelum producer menghasilkan product
o   Hanya sigle customer yang bisa mendapatkan product pada satu waktu.
Mutex : Cuma ada 2 operasi/ penanda
Dining philosopher problem ada 2 solusinya :
1.       Monitor -> dia mengecek forknya available /tidak
2.       Semaphore-> dia ngecek orangnya ada berapa
Link:
www.binus.ac.id
www.skyconnectiva.com

0 komentar: