Thursday, May 7, 2015

Session 11 - 12 | Memory Management

Memory Management

  • Pengelompokan memori untuk menampung beberapa proses
  • Memori butuh untuk dialokasikan secara efesien untuk dikemas sebagai banyak proses dalam memori
Memory Management Requirement
  • Relocation
    • Programmer tidak tahu dimana program akan ditempatkan di memori ketika akan dieksekusi
    • Selama program mengeksekusi, dapat bertukar ke disk dan kembali ke memori utama dilokasi yang berbeda (relocated)
    • Referensi memori harus diterjemahkan dalam kode untuk alamat memori yang sebenarnya fisik
  • Protection
    • Proses seharusnya tidak dapat referensi lokasi memori proses tanpa izin
    • Mustahil untuk cek alamat mutlak dalam program sejak program ini dapat direlokasikan
    • Harus dicek selama eksekusi
      • Sistem operasi tidak dapat mengantisipasi semua memori referensi program akan membuat
  • Sharing
    • Memungkinkan beberapa proses untuk mengakses bagian yang sama dari memori
    • Lebih baik untuk memungkinkan setiap proses (orang) akses ke salinan yang sama dari program dari pada memiliki salinan mereka sendiri secara terpisah
  • Logical Organization
    • Program ditulis didalam modul - modul
    • Modul dapat ditulis dan dikompile secara independen
    • Tingkat perlindungan yang berbeda diberikan ke modul - modul
    • Membagikan modul (Share modules)
  • Physical Organization
    • Memori yang tersedia untuk program plus data mungkin tidak cukup
      • Overlaying memungkinkan berbagai modul - modul akan ditugaskan kedaerah atau tempat yang sama dari memori
    • Programmer tidak tahu berapa besar ruang yang tersedia


Addressing
  • Logical
    • Referensi ke lokasi memori independen dari tugas saat ini dari data ke memori
    • Terjemahan harus dilakukan untuk physical address
  • Relative
    • Alamat dinyatakan sebagai lokasi relativ untuk beberapa titik (point) yang diketahui
  • Physical
    • Alamat absolute atau alamat yang sebenarnya didalam memori utama
Memory Allocation Algorithm
  1. First Fit
  2. Next Fit
  3. Best Fit
  4. Worst Fit
  5. Quick Fit
  6. Buddy System
Buddy System
  • Seluruh ruang yang tersedia diperlakukan sebagai single blok dari 2^u
  • Jika permintaan dari ukuran s seperti  2^u-1 < s < = 2^u, seluruh blok akan dialokasikan seperti:
    • Jika tidak blok akan displit kedalam 2 teman yang sama
    • Proses akan berlanjut sampai blok terkecil lebih besar dari pada atau sama dengan s yang akan digenerate

Session 9 - 10 | Deadlock

Deadlock

  • Terdapat 1 proses yang menunggu proses lain
  • Dapat saling mem-blok dimana sifatnya permanen
  • Tidak ada solusi yang efesien
  • Libatkan kebutuhan yang bertentangan untuk sumber (resource) dengan 2 atau lebih proses
Kondisi Penyebab Terjadinya Deadlock serta Pencegahannya
  • Mutual exclusion
    • penyebabnya adalah hanya satu proses pada suatu waktu yang dapat menggunakan sumber (Resources)
    • Pencegahannya adalah multiple access untuk baca (Read) tapi hanya 1 yang bisa tulis (Write)
  • Hold and wait
    • Penyebabnya adalah proses memegang setidaknya 1 sumber (Resource) yang menunggu untuk mendapatkan resource  tambahan yang dipegang oleh proses lain
    • Pencegahannya adalah yang sudah memiliki resource jangan ngambil resource lagi, jadi yang lkain harus diblok
  • No preemption
    • Penyebab adalah resource dapat dilepaskan hanya dengan sukarela oleh proses yang memegangnya, setelah proses tersebut telah menyelesaikan tugasnya
    • Pencegahannya adalah dapat menggunakan task manager
  • Circular wait
    • Penyebab adalah ada satu set {P0,P1,...,P0} proses sehingga Po menunggu resource yang dipegang oleh P1, P1 juga menunggu resource yang dipegang oleh P2, P2 juga menunggu resource yang dipegang oleh Po
    • Pencegahannya adalah P2 tidak boleh menunggu resource yang sudah dipegang ole P0
Model Deadlock
       
Grafik alokasi sumber daya:
  1. Memegang sumber daya
  2. Meminta sumber daya (Request)
  3. Deadlock
Startegi untuk Menanganu Dead lock
  1. Hanya dengan mengabaikan masalah. (Algoritma Ostrich)
  2. Deteksi dan pemulihan. Biarkan deadlock terjadi, mendeteksi deadlock, mengambil tindakan.
  3. Cari tau penyebab deadlock apa, kemudian kita alokasiin resource dengan hati - hati supaya lebih hemat
  4. Pencegahan, oleh struktural meniadakan salah satu dari empat kondisi yang diperlukan
Deteksi Deadlock

            

  1. Sebuah grafik resource
  2. Siklus diambil dari (a)
Penghindaran Deadlock


  • Mengetahui jumlah yang dibutuhkan dan jumlah yang ada
  • Didefinisikan oleh jumlah yang tersedia dan alokasi sumber (Resource), maksimum permintaan proses
Safe, Unsafe State

            

State (a) adalah Safe


www.binus.ac.id
www.skyconnectiva.com

Session 7 - 8 | Concurrency

Concurrency

  • Komunikasi antara proses - proses
  • Membagi sumber
  • Sinkronisasi dari multiple proses
  • Alokasi dari processor time
  • Multiple aplikasi
  • Structure aplikasi
  • Operating-System Structure
Problem in Concurrency
  • Membagi global resources
  • Menejemen dari alokasi sumber
  • Programming error susah untuk ditemukan

O/S Concerns
  • Harus bisa track dari active proses
  • alokasi dan dealokasi sumber
    • Processor time
    • Memory
    • Files
    • I/O devices
  • Menjaga data dan sumber
  • Hasil dari proses harus independen dari kecepata eksekusi proses lain yang concurrent
Competition among Processes for resources
  • Mutual Exclusion
    • Critical section
      • Hanya 1 program dalam suatu waktu yang dibolehkan dalam critical section
      • Contoh: hanya 1 proses dalam suatu waktu yang dibolehkan kirim comman ke printer
  • Deadlock
  • Starvation
Cooperation among Processes
  • By Sharing
    • Menulis harus mutually exclusive
    • Critical section yang digunakan untuk memberikan data integrity
  • By Communication
    • Message are passes
      • Mutual exclusion tidak mengontrol permintaan
    • Possible to have deadlock
      • Setiap proses menunggu untuk sebuah pesen dari proses lain
    • Possible to have starvation
      • 2 proses mengirim pesan untuk setiap proses selama proses lain menunggu untuk menerima pesan
Mutual Exclusion 
  • Hanya 1 proses dalan suatu waktu yang dibolehkan dalam critical section untuk sebuah sumber
  • A process that halts in its non-critical section must do so without interfering with other processes
  • Tidak ada deadlock dan starvation
  • Sebuah proses tidak harus menunda akses untuk critical section ketika tidak ada satu pun yang menggunakan itu
  • Tidak ada asumpsi yang dibuat tentang kecepatan proses yang relative atau jumlah dari proses
  • Sebuah proses tetap didalam critical section untuk waktu yang terbatas
Mutual Exclusion by Busy Waiting
  • Disabling interrupts
  • Lock variables
  • Strict alternation
  • Peterson's solution
  • The TSL instruction
Semaphore
  • Variable khusu yang dipanggil semaphore yang digunakan untuk signalling
  • Jika sebuah proses menunggu untuk signalling, proses akan disuspen sampai signal dikirim
  • Menunggu dan signal operation tidak dapat di interrupt
  • Queue(Antrian) digunakan untuk menyimpan atau menahan proses yang menunggu pada semaphore
  • Semaphore adalah variable yang mempunyai nilai interjer
    • Tidak dapat diinisialisasikan sebagai negative number
    • Menunggu operasi pengurangan nilai semaphore
    • Signal operasi menambahkan nilai semaphore 

Session 4 - 6 | Process and Threads

Proses vs Program 

  1. Program
    • Berisi petunjuk untuk melakukan tugas
  2. Proses
    • Eksekusi dari program
The Process Model 

a) Multiprogramming dari 4 program
b) Model konseptual dari 4 independen, proses berurutan
c) Hanya 1 program aktif sekaligus

Process Creation
  • Inisialisasi sistem
  • Eksekusi dari proses kreasi sistem pemanggil oleh proses yang berjalan. (fork())
  • Permintaan user membuat proses baru
  • Inisiasi dari batch job
Process
  • Disebut juga sebagai tugas
  • Ekseskusi dari program individual
  • Dapat ditelusuri
    • Daftar berurutan dari instruksi yang dieksekusi
Suspended Processes
  • Processor lebih cepat daripada I/O sehingga semua proses dapat menunggu I/O 
  • Tukar proses ini kedisk untuk membebaskan lebih banyak memori
  • Block state menjadi suspend state ketika bertukar ke disk
  • 2 state baru:
    • Blocked, suspend
    • Ready, Suspend
Process Control Block
  • Process Identification
    • Identifier
      • Pengidentifikasi numerik yang dapat disimpan dengan proses kontrol blok
      • Identifikasi dari proses
      • Idenfier dari proses yang dibuat di proses ini (Parent proses)
      • User identfier
    • Processor State Information
      • User-visible register
      • Kontrol dan status register
        • Program Counter: berisi alamat dari instruksi berikutnya yang akan diambil 
        • Code Kondisi: Hasil hitung atau operasi logical
        • Information Status: Termasuk interrupt diaktifkan atau dinonaktifkan flag, mode eksekusi
      • Stack Pointer: setiap proses memiliki satu atau lebih last-in-first-out (LIFO) sistem stack yang berhubungan dengan itu
    • Process Control Information
      • Penjadwalan dan informasi state
Process Creation
  • Using system call
    • System()
    • Fork()
    • Exec()
Thread
  • Sebuah eksekusi state (running, ready, dll)
  • Konteks thread disimpan ketika tidak running
  • Mempunyai eksekusi stack
  • Beberapa penyimpanan statis per-thread umtuk variable lokal
  • Akses ke memori dan resource dari proses tersebut
  • Memungkinkan beberapa thread dieksekusi secara langsung dalam lingkungan proses yang sama
    • Lightweight Process
    • Multithreading
Model Thread

Benefit of Threads

  • Mengambil waktu yang lebih sedikit untuk membuat thread baru daripada proses
  • Waktunya lebih sedikit untuk terminate thread daripada proses
  • Waktunya lebih sedikit untuk beralih antara 2 thread dalam proses yang sama
Implementasi Thread
  • User Space
    • Keuntungan :
      • Memungkinkan setiap proses untuk memiliki algoritma penjadwalan sendiri
      • performa
    • Kekurangan:
      • Implementasi dari memblokir system call
      • Tidak ada thread lain dapat berjalan kecuali thread pertama secara sukarela menyerahkan CPU

  • Kernel Space
    • Keuntungan:
      • Tidak membutuhkan system call non-blocking baru 
    • Kekurangan:
      • Biaya yang lebih besar untuk menciptakan dan destroying thread
  • Multpiplexing user-level threads into kernel-level threads

Pop-up Thread
a) Sebelum pesan tiba
b) Setelah pesan tiba

POSIX(Portable Operating System Interface) Threads

Behavior of Process

a) Process-bound
b) I/O bound


CPU Scheduler

  • Pilih dari antar proses dalam memori yang siap untuk dieksekusi dan mengalokasikan CPU untuk salah satu dari proses
  • Penjadwalan CPU dapat terjadi ketika proses:
    • Saklar dari running ke waiting state
    • Switch dari running ke ready state
    • Switch dari wating ke ready
    • Terminate
  • Penjadwalan 1 dan 4 adalah nonpreemptive
  • Semua penjadwalan lainnya adalah preemptive
Dispatcher
  • Modul dispatcher memberikan kontrol CPU ke proses yang dipilih oleh scheduler jangka pendek; ini melibatkan:
    • Switching konteks
    • Switching ke mode user
    • Menuju ke lokasi yang tepat dalam program user untuk merestart program
  • Dispatch latency: waktu yang diperlukan untuk dispatcher untuk menghentikan 1 proses dan mulai berjalan lagi
Scheduling Criteria
  • CPU utilization: menjaga CPU sesibuk mungkin
  • Throughtput: jumlah dari proses yang menyelesaikan eksekusi per-satuan waktu 
  • Waktu turnaround: jumlah waktu untuk mengeksekusi proses tertentu
  • Waktu tunggu: jumlah waktu proses untuk menunggu dalam antrian
  • Response time: jumlah waktu yang dibutuhkan dari saat permintaan direquest sampai respon pertama diproduksi, tidak ada keluaran (untuk lingkungan time-sharing)
Optimization Criteria
  • Max CPU utilization: Penggunaan CPUnya digunakan semaksimal mungkin
  • Max throughtpu: jumlah proses yang selesai maksimum
  • Min turnaround time: semakin cepat semakin bagus
  • Min waiting timeL waktu tunggu real
  • Min response time: waktu response time cepat
Batch Scheduling Algorithm
  • First-Come-First-Serve(FCFS)
    • Keuntungan: mudah dipahami dan mudah diprogram
    • kerugian: Pekerjaan singkat mungkin menunggu terlalu lama jika perkejaan lama berada didepan pekerjaan singkat
  • Shortest Job First
    • ada 2 skema:
      • Nonpreemptive: sekali CPU diberikan keproses, yang lain tidak dapat preempted sampai CPU burst selesai
      • Preemptive: jika proses baru datang dengan panjang CPU burst lebih kecil dibandingkan dengan yang tersisa saat proses eksekusi, maka boleh mendahului. Skema ini dikenal sebagai Shortest - Remaining - Time - Firsr (SRTF)


Types Scheduler
  • Round-robin scheduling
  • Priorty scheduling
  • Multiple scheduling
  • Shortest process text
  • Guaranteed scheduling
  • Lottery scheduling
  • Fair-share scheduling

Session 3 | File System

File System 

  • File sistem mengatur file dan mengatur akses ke data
  • Mereka bertanggung jawab untuk manajemen file.file penyimpanan manajemen tambahan, mekanisme integritas file, metode akses file
  • File sistem adalah file utama yang berkaitan dengan mengatur tempat penyimpanan sekunder.
File system biasanya didalam file sistem yang mempunyai meta data yang diasosiasikan dengan mereka. meta data tersebut meliputi:
  • Pemilik dan informasi kelompok
  • Waktu
  • Izin
Contoh - contoh file system:
  • UFS
  • HSFS
  • EXT2
  • FAT32
  • HFS+
  • Elephant FS
The Unix File System
  • Meskipun beda versi dari Unix, kebanyakan memiliki struktur yang hampir sama seperti versi lain
  • File sistem mendefinisikan sebuah logikal hierarchical untuk merepresentasikan objek yang user buat, hal ini dapat merepresentasikan keseluruhan name space, bahkan mencakup seluruh disk
Di dalam UNIX file system, ada 2 cara untuk mengidentifikasi file :

  • Absolute path, adalah path yg langsung menunjuk ke alamat aslinya.
  • Relative path, adalah path yg tidak secara langsung menunjuk ke alamat aslinya (menggunakan alamat reference).
Tipe-tipe file dasar :
  1. Regular file
  2. Direktori
    Direktori menyediakan suatu gambaran antara nama file dengan file itu sendiri
  3. Links
  4. Special files
    Special files tidak mengandung data sama sekali didalamnya, tetapi mereka tetap digunakan untuk menggambarkan perangkat fisik/service ke file system. Fungsinya kalau ada file yg penting di masukkan ke dalam special file maka tidak dapat terserang virus dan tidak dapat terhapus. Ada 2 macam special file : block special dan character special.
  5. Named pipes
    Named pipes adalah sebuah tipe yg special untuk special file, digunakan untuk menunjuk ke blok dalam suatu disk dan untuk menunjukkna struktur dalam suatu memori.
Perbedaan Softlink dan Hardlink :
  • Hardlink
    Hardlink adalah sebuah link antara 2 file yg berada hanya pada tempat yg sama
  • Softlink
    Softlink adalah sebuah link antara 2 file yg berada di tempat yg sama maupun yg berbeda tempat sekalipun


OPERASI DALAM FILE SYSTEM

Ada 11 operasi yg bisa dilakukan dalam file system :
  1. Create
  2. Delete
  3. Open
  4. Close
  5. Read
  6. Write
  7. Append
  8. Seek
  9. Get Attribute
  10. Set Attribute
  11. Rename
Fungsi chmod dalam file system adalah untuk mengeset hak akses suatu file/direktori yg dispesifikan sebagai pathname, harus owner yg merubah mode.

Fungsi yg bisa dilakukan di dalam direktori :
  • Create
  • Delete
  • Opendir
  • Closedir
  • Readdir
  • Rename
  • Link
  • Unlink