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 :

    Process and Threads

    I. PROSES

    A. Konsep

    Perbedaan proses dengan program
    - Program : terdiri dari instruksi untuk melakukan tugas
    - Proses    : eksekusi dari sebuah program

    Proses :
    - disebut juga sebuah task
    - eksekusi dari sebuah individual program
    - dapat ditelusuri berupa daftar instruksi yang dapat dieksekusi

    B. The Creation and Termination  of a Process

    Event yang menyebabkan proses pembuatan adalah :
    • System Inisialisasi 
    • Ekseskusi dari sebuah proses pembuatan system pemanggil oleh running process (fork())
    • Seorang user merequest untuk membuat proses baru
    • Inisiasi batch job 
    Proses Creation menggunakan system call :
    1. System() : Mengeksekusi perintah dari dalam program
    2. fork()
    Ketika program memanggil fork maka proses duplikat yang disebut dengan proses child akan dibuat. Proses parent terus melaksanakan program dari titik yang disebut fork.
    Proses child juga mengeksekusi program yang sama dari tempat yang sama fork pid_t (void)
    Return dari fungsi fork adalah 0 untuk child, >0 untuk parent, dan -1 untuk kesalahan/error.
    hasilnya adalah :
    $. / fork
    Proses Program ID yang utama adalah 18.611
    ini adalah proses child, dengan id 18612
    ini adalah proses parent, dengan id 18611
    Proses id child adalah 1861

    3. Exec()
      Event yang menyebabkan proses terminasi / pengakhiran adalah :
      • Normal exit (voluntary)
      • Error exit (voluntary).
      • Fatal error (involuntary).
      • Killed by another process (involuntary)
      Alasan proses terminasi adalah :
      1. I / O gagal
      2. instruksi yang tidak valid
      3. terjadi ketika mencoba untuk mengeksekusi data
      4. instruksi istimewa
      5. penyalahgunaan Data
      6. Intervensi sistem operasi seperti ketika deadlock terjadi
      7. Parent berakhir sehingga proses child mengakhiri permintaan parent

      5 state dari proses model
      • dispatch berfungsi untuk menjalankan suatu fungsi tertentu.
      • exit kondisi ketika proses sudah terputus (terminated)
      Suspended Process
      • Prosesor lebih cepat daripada I / O sehingga semua proses dapat menunggu I / O
      • Tukar proses ini ke disk untuk membebaskan lebih banyak memory
      • Keadaan yang diblokir akan menjadi keadaan suspend ketika bertukar disk
      • 2 keadaan baru :
                   1. blocked , suspend
                   2. ready , suspend

      Process Table
      - Dimana proses berada
      - Atribut yang diperlukan untuk manajemen :
        1. proses ID
        2. proses state
        3. lokasi di memori

      Lokasi Proses
      - Proses mencakup set program yang akan dieksekusi
           -Lokasi data untuk variabel lokal dan global
           -Setiap konstanta yang didefinisikan
           -stack
      -Proses Kontrol Block : sekumpulan atribut
      -Proses Gambar : sekumpulan program, data, stack, dan atribut

      C. Mode-mode dari Eksekusi
      1. User Mode
          - lebih sedikit hak akses modenya
          - program user biasanya mengeksekusi mode ini.
      2. System Mode, Control Mode, atau Kernel Mode
         - lebih besar hak akses modenya
         - kernel dari operating system


      II. THREADS

      A. Konsep
      Thread memungkinkan beberapa eksekusi berlangsung dalam lingkup proses yang sama
      Thread ada 2 macam :

      1. Lightweight process (LWP) : karena threads memiliki beberapa sifat/properti dari proses. LWP mengambil properti / atribute.
      LWP mempunyai 2 element , yaitu :
            1. LWP Identifier
            2. Prioritas dari LWP : dengan LWP ini proses-proses tertentu akan diprioritaskan dan secara otomatis thread-thread di dalamnya juga akan didahulukan

      2. Multithreading         : memungkinkan beberapa thread dalam proses yang sama
      keadaan eksekusi :
      1. ready          : siap untuk jalan
      2. running      : bekerja / sistem berjalan
      3. terminated : sistem diakhiri

      (a) One to One    : 1 proses 1 thread
      (b) Many to One : 1 proses banyak thread

      B. Thread Model
      Keterangan :
      1. Address Space : mendefinisikan virtual address space yang di assign untuk proses
          -virtual address space : virtual storage yang di assign untuk sebuah proses.
      2. Register : ada di prosesor yang paling cepat
      3. Accounting Information : perhitungan processor time , clock time , resourcenya efisien atau tidak.

      keterangan gambar diatas : 1 proses memiliki banyak thread dan setiap thread mempunyai stacknya masing-masing.


      C. Manfaat Threads
      1. memerlukan waktu lebih sedikit untuk membuat thread baru daripada membuat proses baru.
      2. membutuhkan waktu lebih sedikit untuk mengakhiri thread daripada proses.
      3. membutuhkan waktu lebih sedikit untuk bertukar antara 2 thread dalam proses yang sama.
      4. bisa saling komunikasi.

      D. Implementasi Thread
      A. User Space
           Keuntungan :
         - memungkinkan setiap proses dapat dijadwalkan masing-masing
         - performancenya lebih cepat
        
           Kerugian :
          - implementasi dari non blocking system calls.
          - tidak ada thread yang boleh jalan apabila thread pertama sedang berjalan. (harus menunggu)

      B. Kernel Space
           Keuntungan :
        - tidak membutukan non blocking system calls baru

           Kerugian :
         - membutuhkan biaya yang besar dalam membuat dan merusak threads.

      Pop Up Thread : pembuatan thread baru ketika ada pesan datang (thread yang tiba-tiba muncul)

      E. Hubungan antara Threads dan Process
      One to One (1:1)     : 1 thread berhubungan dengan 1 proses (1 proses 1 thread)
      Many to One (M:1) : Multiple thread yang mengeksekusi 1 proses (1 proses banyak thread)
      One to Many (1:M) : 1 thread mengerjakan banyak proses 
      (M:M)                      : kombinasi antara many to one dengan one to many.

      File System

      A. Konsep File System
           - File system mengorganisasikan file-file dan memanage akses ke data
           - Funsgi file system :
             1.  File Management (bagaimana mengatur file kita mulai dari pembacaan file dll.)
             2.  Auxilary File Storage Management
             3.  File Integrity Mechanism (untuk memastikan bahwa data tidak rusak dan menjaga keabsahan data)
             4. File Access Method.
          -  File system berfokus pada managing secondary (disk) storage.

      Secara khas file system mempunyai meta data yang berhubungan dengannya, beberapa meta data yang termasuk adalah :
      1. Owner dan Group information (UGO)
      2. Time : waktu yang kita habiskan untuk mengotak atik file kita
      3. Permission : yang mengizinkan apakah data bisa di execute , dibaca , atau dua-duanya.

      Beberapa contoh disk yang berbasiskan file system :
      1. UFS (Unix File System  )
      2. HSFS (High Sierra File System) juga dikenal sebagai ISO9660
      3. EXT2
      4. FAT32
      5. HFS+
      6. Elephant FS

      B. Unix File System
           Meskipun berbeda dengan versi Unix , tapi kebanyakan structure sama. Unix File System berisi hanya folder dan file
       
      Ada 2 cara untuk mengidentifikasikan file-file dalam file system :
      1. Menspesifikasikan absolute pathname
          absolute pathname adalah path relative untuk root dalam sebuah file system.
      2. Mereferensikan file dalam file system dengan menggunakan sebuah relative pathname.

      C. Tipe-tipe Objek dalam file system :
           Ada 5 tipe file dasar , yaitu :
           1. Regular Files 
           2. Directories
           3. Links (termasuk symbolic links)
           4. Special Files
           5. Named Pipes

      Direktori menyediakan sebuah mapping antara nama file dan file itu sendiri. Kita bisa juga mengurutkan file kita sendiri.

      Special File
      tidak mengandung file tapi mengandung servis untuk file system atau memappingkan perangkat fisik.

      contoh : con (connection)
                    prn (printer)
                    nul (kosong)
      :: dimana jika kita membuat folder dengan nama dari salah satu diatas maka folder tersebut tidak akan bisa dihapus.

      Named Pipe
      named pipe adalah tipe spesial dari special file. Named pipe ini tidak mengarah ke blok dari sebuah disk , perangkat ataupun servis tapi dia mengarah ke struktur dalam memory.

      Hardlinks
      Hardlinks adalah link antara file-file yang hanya dalam file system yang sama.
      - harus berada pada satu file system

      Softlinks
      Softlinks adalah link yang bisa menunjuk file pada disk yang berbeda , bahkan pada network yang berbeda.
      - bisa dibuat antar network.

      File Operations
      chmod : digunakan untuk memodifikasi file 

      R W X : Read Write Execute
      contoh : 
                     001 : bisa execute
                     101 : bisa read dan execute
                     111 : bisa read , write , execute

      Operating System Overview

      A. Pengertian Operating System
           -    Operating system adalah sebuah program yang mengontrol eksekusi dari program aplikasi.
           -    Operating system adalah sebuah interface antara aplikasi dan hardware.
           -  Operating system bertindak sebagai intermediasi (perantara) antara hardware & software dimana apabila hardware mau menginstall software maka harus melalui OS.

      B. Tujuan dan Fungsi Operating System
         - Convenience  : untuk mempermudah pemakaian computer
         - Effieciency    : untuk melakukan pemakaian yang lebih efisien dan untuk hasil yang lebih baik
         -  Ability to evolve  : OS bisa dikembangin untuk jangka panjang.

      Operating system sebagai user/computer interface menyediakan beberapa area servis sebagai berikut :
      1.      Program Development (bagaimana cara untuk mendevelop sebuah program)
      Contoh : Visual Studio , dev C++, gcc
      2.      Program Execution (jumlah step yang dibutuhkan untuk mengexecute program)
      3.      Access to I/O devices
      4.      Controlled access to files (bagaimana cara membuat hak akses.)
      5.      System access
      6.      Error Detection & Response
      7.      Accounting
      8.      ISA
      9.      ABI
      10.  API

      C.   Evolusi dari Operating System
      1.      Serial Processing
      2.      Simple Batch System
      3.      Multiprogrammed Batch System

      Contoh utilization :
      Read one record from file   15µs
      Precute 100 instruction         1µs
      Write one record to file       15µs
      Total                                   31µs

      Percent CPU utilization = 1/31 = 0,032 = 3,2%

      RWX (Read Write Execute) dengan rumus probabilitas = 1 / total




      - Deadlock adalah suatu kemungkinan dimana terdapat 2 atau lebih program yang menunggu
        program yang sama dalam satu waktu sehingga tidak terdapat satu program yang mendapat data
        tersebut.

      - Memory Management adalah bagaimana cara kita memanage / mengatur penggunaan memory pada
         sistem kita supaya penggunaanya lebih efisien dan efektif.

      - Virtual memory adalah suatu fasilitas yang memungkinkan program untuk menempatkan data kita
         ke suatu address memory secara logic tanpa menampungnya di tempat penyimpanan fisik.

      Information protection and security mempertimbangkan beberapa hal berikut :
      a. Availability
          terdapatnya suatu program yang berfokus pada proteksi sistem.
      b. Confidentialy
          untuk memastikan user yang tidak terautorisasi dan supaya tidak dapat membaca data tertentu
          yang bukan miliknya.
      c. Data Integrity
          untuk menjaga keabsahan data dan memproteknya dari pemodifikasian data tanpa terautorisasi.
      d. Autenticity
         Fokus pada verifikasi user dan validasi data.


      Link :