Saturday, May 9, 2015

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 :

    Computer System Overview


    A. Basic Elements

         Terdapat 4 elemen dasar yaitu :
    1.      Processor
          Processor adalah elemen yang mengontrol jalannya computer dan memproses data-data yang ada di computer.
    2.      Main Memory
          - Main memory / real memory / primary memory : RAM
          - Digunakan untuk menyimpan data , namun sifatnya volatile (penyimpanan sementara dimana apabila listrik computer off/mati maka semua data akan hilang).
    3.      I/O Modules
         -  Digunakan untuk memindahkan data antara computer dengan eksternal environment
         -  Yang termasuk dalam I/O modules contohnya :
    1.      Perangkat penyimpanan sekunder (secondary memory) : Hardisk
    2.      Peralatan komunikasi
    3.      Terminals
    4.      System Bus
          Menyediakan komunikasi anatara processor , main memory dan I/O modules.

    B. Instruction Cycle

    Dalam  Instruction Cycle terdapat 3 siklus , yaitu :
    1. Fetch Cycle : fungsinya untuk mengambil data (membaca instruksi dari memory)
        Fetch instruction ditempatkan pada instruction register.
        Tipe-tipe instructions :
           a.       Processor-Memory
                 -          Data ditransfer dari processor ke memory atau sebaliknya
           b.      Processor I/O 
                 -          Data ditransfer dari processor ke I/O modules atau sebaliknya.
           c.       Data Processing
                 -          Processor menjalankan logika operasi data
           d.      Control
                 -          Yang mengontrol urutan eksekusi programnya. 
    2.      Decode Cycle : fungsinya menerjemahkan data yang diambil
    3.      Execute Cycle : fungsinya menjalankan setiap instruksi

    Contoh Program Execution :


    C. Interrupt
     - Memungkinkan prosesor mengeksekusi instruksi lain ketika operasi I/O sedang di progress
     - Tipe-tipe interrupt :
    .        1. Program
                 a. Arithmetic overflow
                     contoh  : space memori yang sudah maksimum dan dia tidak bisa  ditampung lagi
     b. Division by zero
         contoh : 1/0 , 0/0
      c. Execute illegal instruction
         contoh :coding di struktur data next  ke next ke  prev tapi saat di prev isinya null maka akan menyebabkan program breakd. 
      d. Reference outside user’s memory space
    contoh : scanf("%d”,x)
          Dia akan gagal karena dia reference ke x dimana x masih belum disediakan memory spacenya maka akan menjadi break.

     
    2.      Timer
    3.      I/O
    4.      Hardware Failure

    D. Memory

           - Register
                 1. Kecepatannya paling tinggi
                 2.  Ukurannya kecil (kekurangannya)
           - Cache
                1. Biasanya dipakai untuk codingan program tiket dll. yang kerjanya cepat.

    Terdapat 3 tipe cache memory :
    1.      L1 cache
    2.      L2 cache
    3.      L3 cache


    E. I/O Types


    Link :