Friday, June 12, 2015

Security

A. Persyaratan Security

  1. Confidentiality : data hanya boleh diakses oleh yang mempunyai hak akses.
    1. Integrity           : data hanya boleh diubah-ubah oleh orang yang mempunyai hak akses.
    2. Availability      : ketersediaan data (ada atau tidaknya data untuk dapat diakses).
    3. Authenticity     : memverifikasi identitas user.

    B. Tipe-Tipe Ancaman / Threats

    1. Interruption
    • Sebelum data sampai ke tujuan datanya di interrupt di tengah jalan.
    • Interruption ini menyerang availability.
    • Contoh interruption : perusakan hardware , memutuskan communicating line.
    2. Interception 
    • Ketika datanya dikirim ke tempat tujuan , di tengah jalan datanya diambil oleh orang yang tidak berhak.
    • Interception ini menyerang confidentiality.
    • Contoh interception : wiretrapping untuk mengambil data dari suatu jaringan.
    3. Modification
    • Ketika datanya dikirim ke tempat tujuan , nilai pada data yang dikirim tersebut diubah oleh yang tidak mempunyai hak akses.
    • Modification ini menyerang integrity.
    Contoh modification : merubah nilai pada data , mengubah content dari pesan yang dikirimkan ke dalam sebuah network.
    4. Fabrication 
    • Menambahkan objek atau data pada sistem tersebut.
    • Fabrication ini menyerang authenticity.
    • Contoh farication : menambahkan pesan palsu ke dalam sebuah jaringan.

    C. Intruders (yang melakukan penyerangan)

    1. Meargetkan orang yang tidak mengerti komputer.
    2. Snooping by insiders (masuk ke dalam dan mempelajari sistemnya).
    3. Untuk menghasilkan uang.
    4. Menjadi mata-mata.

    D. Protection Mechanism
    1. Protection Domain
    2. Protection Matrix
     E. Asset Sistem Komputer
    1. Hardware : Ancaman pada hardware bisa disebabkan oleh faktor ketidaksengajaan tetapi bisa juga karena sengaja dihancurkan.

    2. Software : Ancaman pada software bisa berupa penghapusan , pengubahan dan perusakan data.

    3. Data : Ancaman pada data biasanya berhubungan dengan security misalnya berhubugan dengan availability , secrecy , dan integrity.

    4. Coommunication Lines and Networks - Passive attacks
    Ancaman yang bisa terjadi pada communication lines and network misalnya mengambil data yang ada di dalam suatu jaringan (sekedar membaca data yang ada dalam jaringan tersebut), karena bersifat passive attacks maka tidak melakukan penyerangan.

    5.Communication  Lines and Networks - Active attacks
    Karena merupakan active attacks maka bukan hanya mengambil data saja akan tetapi juga melakukan penyerangan.

    F. Pencegahan untuk menghindari adanya ancaman terhadap security
    1. Membatasi berapa kali seseorang bisa login
    2. Secara otomatis akan munculin captcha apabila salah memasukkan password 3 kali
    3. Menyimpan semua database loginnya.
    4. Membuat nama/password yang simple sebagai jebakan.
    G. Serangan dari dalam
    1. Trojan Horses : suatu file yang diselipkan ke dalam file lain yang biasanya ketika user lengah maka bisa mendownload apapun dan terkadang bisa mengendalikan komputer.
    2. Login Spoofing : membuat halaman login yang sama persis dengan login aslinya , akan tetapi dibelokkan ke halaman lain misalnya untuk mengetahui password yang login.
    3. Logic Bomb : menambahkan logika ke dalam programnya dan biasanya bertujuan untuk menyerang penggunanya misalnya akan menghapus isi hardisknya.
    4. Trap door : membuat pintu belakang dari sistemnya
    Virus    : program yang dapat menginjeksi inangnya.
    Worms : program yang tidak menyerang program lain tetapi dia bisa memperbanyak diri supaya memenuhi space komputer.

    Tahapan-tahapan virus :
    1. Dormant phase : fase dimana virus masih dalam keadaan idle
    2. Propagation phase : fase dimana virusnya mulai memperbanyak diri.
    3. Trigerring phase : fase dimana virusnya mulai aktif untuk menampilkan fungsinya.
    4. Execution phase : fase dimana virusnya mulai menyerang.

    Pendekatan Antivirus :
    1. Detection : antivirus akan mendeteksi virusnya terlebih dahulu .
    2. Identification : antivirus akan mengidentifikasi virusnya.
    3. Removal : antivirus akan menghapus virusnya. 

    Wednesday, June 3, 2015

    Embedded System

    Embedded System

    A. Pengertian embedded system
    Embedded system adalah kombinasi dari hardware dan software komputer yang didesain untuk menampilkan fungsi tertentu.

    B. Karakteristik dari embedded system
    1. Real-time Operation
    Dalam embedded system , kebenaran dari perhitungan/komputasinya bergantung dan on time pada saat dikirimkan.
    contoh : cardiac monitor

    2. Reactive Operation
    Dalam embedded software mungkin menjalankan response untuk event eksternal.

    3. Configurability
    Karena variasi dari embedded system itu luas maka ada banyak variasi kebutuhannya baik kuantitatif maupun kualitatif.

    4. I/O device flexibility : input outputnya fleksibel.

    5. Streamlined protection mechanism
    Embedded system secara khusus didesain terbatas untuk fungsi yang telah didefinisikan.

    6. Direct use intterupts
    Bisa di interrupt di tengah jalan. 

    C. Embedded System Development vs Traditional System Development
    • Tidak harus sequential code
    • Beberapa bagian dari sistem dapat dijalankan secara bersamaan
    • Routine bisa berhenti dimana saja.
    Pendekatan Embedded System Development
    1. Tentukan terlebih dahulu hardwarenya apa.
    2. Harus memastikan softwarenya compatible dengan hardwarenya
    3. Didesain untuk jangka waktu yang panjang.
    4. Sistemnya dibuat object oriented (berorientasi objek).

    Specialized Embedded Operating System
    • real time : karena bisa di interrupt
    • hanya membutuhkan ukuran yang kecil karena fungsinya spesifik.
    • respond terhadap external interrupt lebih cepat
    • menyediakan ukuran yang pasti
    • bisa di lock secara real time.
    eCos (Embedded Configurable Operating System)
    • open source , bebas royalty , real time O/S untuk embedded application
    • komponen eCos : 
             1. HAL (Hardware Abstraction Layer) : software yang menampilkan API yang konsisten untuk              layer yang lebih tinggi ke dalam sebuah spesifik hardware platform.
             2. eCos kernel

    eCos Scheduler
    1. Bitmap Scheduler
    - bitmap scheduler mendukung banyak level prioritas , tetapi hanya satu thread yang ada pada masing-masing level pada beberapa waktu yang diberikan.

    2. Multilevel Queue Scheduler
    - memungkinkan untuk banyak thread yang aktiv pada masing-masing level prioritas .





    Tuesday, May 26, 2015

    I/O Buffering

    A. Pengertian Buffering

    Buffering adalah suatu proses melakukan buffer dimana buffer merupakan area memori yang menyimpan data ketika data tersebut sedang dipindahkan antara dua device atau antara device dan aplikasi. 

    Terdapat 4 cara buffering yaitu :
    1. No Buffering (tidak terdapat buffer dalam sistem operasi).
    Ketika proses memberi perintah untuk perangkat I/O , maka data akan langsung melewati sistem operasi dan langsung dikirim ke proses user.

    2. Single Buffering (terdapat satu buffer dalam sistem operasi)

    Ketika proses memberi perintah untuk perangkat I/O , maka data akan masuk ke dalam buffer di sistem operasi. Untuk perangkat berorientasi blok , transfer masukan akan dibuat ke buffer sistem dan setelah transfer selesai , proses akan memindahkan blok data ke user proses dan segara meminta blok lain.

    3. Double Buffering (terdapat 2 buffer pada sistem operasi.)

    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.

    4. Circular Buffering
    Pada circular buffering sistem operasi menggunakan lebih dari dua buffer karena jika proses melakukan operasi I/O yang berturutan dengan cepat maka double buffering tidak dapat mengatasinya. Ketika lebih dari dua buffer yang digunakan, kumpulan buffer itu sendiri disebut sebagai circular buffer. Tiap buffer individu adalah satu unit di circular buffer.


    B. Alasan dilakukannya Buffering

    Buffering dilakukan atas 3 alasan , yaitu :


    1. Untuk mengatasi adanya kesalahan yang terjadi karena perbedaan kecepatan antara produsen dengan konsumen dari sebuah stream data.

    2. Untuk menyesuaikan device-device yang mempunyai perbedaan dalam ukuran transfer data.
    Hal ini sangat umum terjadi pada jaringan komputer, dimana buffer dipakai secara luas untuk fragmentasi dan pengaturan kembali pesan-pesan yang diterima. Pada bagian pengirim, sebuah pesan yang besar akan dipecah ke paket-paket kecil. Paket-paket tersebut dikirim melalui jaringan, dan penerima akan meletakkan mereka di dalam buffer untuk disusun kembali.

    3. Untuk mendukung copy semantics untuk aplikasi I/O.

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

    Saturday, May 9, 2015

    Memory Management

    A. Pengertian Memory Management
    - Pengelompokan memori untuk menampung beberapa proses
    - Memori perlu dialokasikan secara efisien untuk menampung proses sebanyak mungkin.

    B. Memory Management Requirement
    1. Relocation : programmer tidak akan tahu program itu ditempatkan dimana.
    ketika program di execute dan kemudian di execute lagi , kemungkinan program tersebut akan bertukar disk dan kembali ke main memory pada lokasi yang berbeda




    2. Protection : proses seharusnya tidak boleh mereference ke lokasi memori dalam proses lain tanpa izin. 

    3. Sharing : ada beberapa proses berjalan bersamaan dan saling berbagi memory.

    4. Logical Organization :
        - program ditulis dalam bentuk modul/function.
        - modul bisa ditulis / dicompile secara terpisah-pisah.

    5. Physical Organization 
       - Memory tersedia untuk sebuah program ditambah data itu sendiri yang mungkin cukup.
       - Programmer tidak mengethaui seberapa banyak space yang tersedia.

    C. Addressing
    addressing ada 3 , yaitu :
    1. Logical
        - mereference ke lokasi memori terpisah dari assignment yang sekarang dari data ke memori.
    2. Relative
       - alamat yang diekspresikan sebagai sebagai sebuah lokasi relatif untuk beberapa titik yang diketahui.
    3. Physical 
    - alamat asli atau lokasi nyata dalam main memori.

    Swapping

    D. Algoritma Alokasi Memori
    1. First Fit            : mencari memory yang paling pertama dan spacenya cukup
    2. Next Fit           : mencari memory dari lokasi memori sekarang ke sebelahnya , bukan dari lokasi memori yang pertama
    3. Best Fit            : mencari blok memori yang ukurannya mendekati dengan yang diminta
    4. Worst Fit         : mencari ukuran memori yang terbesar
    5. Quick Fit
    6. Buddy System : mencari lokasi memori menggunakan rumus. 
        Rumus buddy system :
        2U-1 < s <= 2U

    Memory Allocation Algoritm

    Deadlock

    A. Pengertian Deadlock
         - dua atau lebih proses saling memperrebutkan satu resources
    Permanent blocking adalah saling memblok dan sifatnya bisa permanent (sampai salah satu ada yang mengalah).

    (a). kondisi sebelum terjadi deadlock
    (b). kondisi setelah terjadi deadlock

    B. Kondisi sumber terjadinya deadlock
    1. Mutual exclusion : hanya ada satu proses yang bisa menggunkan resources
    2. Hold and wait      : satu proses sedang holding / memegang paling sedikit satu resources sembari menunggu resources lain yang sedang dipegang oleh proses lain.
    3. No preemption     : satu resources dapat di released hanya jika mendapatkan izin dari proses yang memegang resources tersebut , setelah proses tersebut menyelesaikan tugasnya.
    4. Circular Wait       : sekumpulan proses yang saling menunggu satu sama lain , misal ada proses (P0, P1 , .. , P0) maka P0 menunggu resources yang dipegang oleh P1 , P1 menunggu resources yang dipegang oleh P2 , ... , Pn menunggu resources yang dipegang oleh P0.

    C. Deadlock Modeling 
    Resources allocation graph :
    1. Holding a resources      : proses sedang menunggu resources
    2. Requesting a resources : proses sedang merequest resources
    3. Deadlock
    D. Deadlock

    Jika request datang seperti urutan diatas dan CPU memproses A, B dan C berurutan à tidak terjadi deadlock tetapi tidak ada paralelisme.

    Contoh deadlock :
    Jika proses diatas ditambah dengan proses (d) berikut maka akan menyebabkan deadlock
    Strategi untuk mengatasi deadlock :
    ada beberapa strategi untuk mengatasi deadlock :
    1. Abaikan permasalahan (Ostrich Algorithm)
    2. Deteksi dan recovery
    3. Dynamic avoidance dengan pengalokasian resource dengan hati-hati.
    4. Pencegahan

    Safe and Unsafe State
    Contoh : safe state

    Contoh : unsafe state

    Contoh : (a) Safe State
                   (b) Safe State
                        (c) Unsafe State

    E. Banker's Agorithm dengan multiple resources

    F. Deadlock Prevention
    Kesimpulan dari deadlock prevention
    Link :

    Concurrency

    Concurrency untuk mengatasi :
    1. Multiple applications
        - Multiprogramming (programnya yang concurrent)
    2. Structured application
       - aplikasi yang dapat mengatur proses concurrent (prosesnya yang concurrent)
    3.Operating-system structure
       - Sistem operasi yang mengatur sekumpulan proses atau thread

    A. Masalah dalam Concurrency
        - Berbagi resource global
          contoh : printer (ketika printer digunakan bersama-sama)
        - Bagaimana alokasi resources supaya lebih aman
        - Programming error dificult to locate

    Operating system konsen pada beberapa hal di bawah ini :
    1. Mencari tahu proses yang aktif apa saja.
    2. Mengalokasikan dan mendealokasikan resources.
    3. Melindungi data dan resources.
    4. Hasil prosesnya harus independent dari hasil ekseskusi proses lain.

    B. Kompetisi antara proses dan resources
    1. Mutual Exclusion : 1 proses diberikan hak khusus untuk menggunakan resources.
    2. Deadlock              : banyak proses memperebutkan 1 resources
    3. Starvation             : setiap proses berfikir bahwa ada proses lain yang sedang memakai resources tersebut padahal sebenarnya tidak ada yang memakai.

        Kerja sama antar proses
    1. By Sharing (berbagi)
    2. By Communication (berkomunikasi)

    C, Mutual Exclusion
    Alasan untuk menciptakan mutual exclusion (memberikan hak khusus pada 1 proses) :
    1. Disabling Interrupt (tidak bisa interrupt - non preemptive)
    2. Lock variables
        contoh : a = 10 (lock variable)
                      jika ada b yang mau mengubah nilai a maka tidak bisa karena a merupakan lock variable
    3. Strict Alternation : biasanya terjadi di java script / VB 
    4. Peterson's solution 
    5, The TSL instruction

    D. Semaphores
    - spesial variable yang disebut semaphore digunakan untuk signalling.
    - jika sebuah proses sedang mununggu sinyal maka dia akan dimatikan sampai sinyalnya dikirim.
    - operasi wait dan operasi sinyal tidak bisa diinterrupt
    - semaphore adalah sebuah variable yang mempunyai nilai integer :
        1. mungkin di inisialisasi dengan angka positif.
        2. operasi wait akan mengurangi nilai semaphore
        3. operasi sinyal akan menambah nilai semaphore.

    E. Produces Consumer's Problem
    - consumer tidak akan bisa konsumsi sebelum ada yang dihasilkan oleh producer.
    - hanya single customer yang mendapatkan product pada satu waktu.

    cara mengatasi Producer consumer's problem :
    1. menggunakan semaphore

    2. menggunakan thread


    F. Dining Philosopher's Problem
    1. Philosopers makan/berfikir.
    2. Makan membutuhkan 2 forks
    3. Hanya bisa mengambil 1 fork pada satu waktu.
    4. Bagaimana caranya untuk mencegah deadlock

    Solusi untuk dining philosopher's problem :
    1. monitor      : dicek apakah forknya itu ada atau tidak.
    2. semaphore : dicek philosophernya ada berapa

    G. Mutex 
    - Mirip dengan semaphore
      bedanya : 
      1. mutex         : hanya ada 2 operasi / penanda.
      2. semaphore : mempunyai 3 operasi / penanda.
    Mutex dalam pthread :
    H. Monitor
    - ada 5 kondisi yang dicatat , tapi dia mengecek forknya itu available atau tidak.
    - hanya satu proses actif di dalam monitor.
    I. Message Passing
    - jika ingin melakukan komunikasi maka dengan kirim-kiriman pesan (antara sender dan receiver.) 



    Link :

    Process Scheduling

    PROCESS SCHEDULING

    - Proses Scheduling : bagaimana caranya mengatur dalam satu prosesor dapat menjadwalkan prosenya masing-masing.
    - Multiprosesor Scheduling : schedule dengan banyak prosesor

    A. Behavior Of Process 
    a. Process-bound : dilihat dari proses itu sendiri
    b. I/O bound        : dilihat dari input dan output

    CPU Scheduler (Penjadwalan CPU)
    -memilih beberapa proses di memory yang siap untuk di eksekusi.
    prosesor : memastikan bahwa tidak ada aplikasi yang menyalahgunakan kekuasaannya.

    Dispatcher : modul dispatcher memberikan kontrol kepada CPU untuk proses yang dipilih oleh short term scheduler.
    -shorterm scheduler : penjadwalan untuk jangka pendek.
    -longterm scheduler : penjadwalan untuk jangka panjang.
    Dispatch Latency : waktu yang diambil oleh si dispatcher untuk mengakhiri proses A dan merestart proses B.

    B. Scheduling Criteria (Kriteria Penjadwalan)

    1. CPU utilization    : penggunaan CPU dimana memastikan bahwa CPU harus tetap bekerja.
    2. Throughput          : setiap waktunya ada berapa proses yang selesai.
    3. Turnaround time  : waktu untuk mengeksekusi proses tertentu.
    4. Waiting Time       : seberapa lama dia menunggu proses lainnya yang sedang berjalan.
    5. Response Time    : waktu yang dibutuhkan sejak request sampai ada response.

    C. Kriteria Optimisasi
    1. maksimal CPU utilization : penggunaan CPU-nya maksimal
    2. maksimal througput          : jumlah proses yang selesai maksimal
    3. minimal turnaround time  : semakin cepat semakin bagus
    4. minimal waiting time        : waktu nunggunya sedikit
    5. minimal response time      : waktu responsenya cepat

    C. Tujuan Scheduling 
    1. All Systems
        - fairness : membagi masing-masing proses dari CPU sama rata.
        - policy enforcement : terdapat kebijakan atau aturan
        - balance : prosenya dibikin balance , satu sibuk yang lain sibuk
    2. Batch Systems
       - throughput : memaksimalkan job per hour
       - turnaround time : minimize waktu antara submission dan termination.
       - CPU Utilization : bagaimana caranya supaya menjaga penggunaan CPU-nya tetap bagus.
    3. Interactive Systems
       - Response time : merespon request dengan cepat
       - Proportionality : memastikan apakah yang didapatkan sesuai dengan yang diminta.
    4. Real Time Systems
       - Meeting deadlines : menghindari kehilangan data.
       - Predictability : harus ada prediksi supaya datanya dapat dipercaya.

    D. Algoritma Batch System

    1. First Come First Serve
        Pada saat ada request maka langsung dijalankan.
        - Keuntungan : Mudah dimengerti dan mudah diprogram
        - Kelemahan  : Pekerjaan yang singkat mungkin menunggu jika ada pekerjaan yang lama berada di depan.


    2. Shortest Job First
        Jika ada pekerjaan yang lebih ringan maka akan dikerjakan terlebih dahulu.
        Pada shortest job first terdapat 2 skema :
        1. nonpreemptive : harus menunggu sampai proses pertama selesai dulu. (tidak bisa diinterrupt)


        2. preemptive       : jika ada yang lebih cepat / sisa tunggu lebih sedikit , maka bisa dijalankan terlebih dahulu. (bisa di interrupt)
                                       
                                     Shortest Job First - Preemptive
    E. Algoritma Interactive Scheduling
    • Round-robin scheduling
    • Priority scheduling
    • Multiple queues
    • Shortest process next
    • Guaranteed scheduling
    • Lottery scheduling
    • Fair-share scheduling
    Contoh Round Robin Scheduling :
    Link :