• Session 1 : Process (PartI)

    Program = merupakan sekumpulan instruksi untuk melakukan pekerjaan

    Process = merupakan tahapan eksekusi dari program

    Process Characteristic
    -Identifier
    Memberikan label untuk tiap-tiap proses agar dapat membedakannya dari proses yang lain
    -State
    Keadaan dari suatu proses
    -Priority
    Tingkat prioritas suatu proses
    -Program Counter
    Alamat dari instruksi selanjutnya pada suatu program untuk dieksekusi
    -Memory Pointers
    Merupakan pointer yang menunjuk ke source code suatu program serta data yang berkaitan dengan proses program tersebut
    -Context Data
    Data yang tersedia pada registers di processor ketika proses dijalankan
    -I/O status information
    Informasi yang berisi tentang status dari I/O itu sendiri yang berkaitan dengan proses
    -Accounting Information
    Informasi yang berisi tentang processor time, clock time, dll

    Process Creation
    -Memberikan label yang unik untuk proses yang dituju
    -Mengalokasikan memory/space untuk proses
    -Melakukan inisialisasi PCB(Process Control Block)
    -Mempersiapkan linkages/link yang cocok
    -Membuat dari perluasan struktur data yang lain

    Process Termination
    -Normal completion
    Proses berakhir dengan normal
    -Time limit exceeded
    Proses melewati batas waktu yang telah ditentukan
    -Memory unavailable
    Memory tidak tersedia/tidak cukup untuk proses
    -Bounds violation
    Melewati batas yang telah ditentukan
    -Protection error
    Error yang terjadi karena Hak akses proses yang dibatasi
    -Arithmetic error
    Error dalam kalkulasi/perhitungan
    -Time overrun
    -I/O failure
    Error yang terjadi pada I/O components
    -Invalid Instruction
    Melakukan instruksi yang tidak sesuai
    -Privileged Instruction
    Instruksi yang memerlukan hak istimewa seperti admin
    -Data misuse
    Data yang disalahgunakan
    -Operating System intervention
    Terjadi ketika deadlock
    -Parent terminates so child processes terminate
    Ketika parent dihentikan,maka proses child juga akan berhenti
    -Parent request
    Permintaan dari parent

    Process Table
    -Merupakan letak dimana suatu proses disimpan
    -Terdiri dari Process ID,Process State serta lokasi pada memory

    Process Location
    -Merupakan proses yang terdiri dari sekumpulan program yang akan dijalankan
    -Terdiri dari PCB(Process Control Block) yang berisi kumpulan-kumpulan atribut dan Process Image yang berisi kumpulan-kumpulan dari program,data,stack dan atribut

    PCB(Process Control Block)
    Berikut ini merupakan tahapan-tahapan proses dalam PCB :
    1.Process Identification
    -Merupakan tahapan memberikan label/identitas untuk suatu proses
    -Terdiri dari Identifiers
    2.Processor State Information
    -Terdiri dari User-visible registers, Control and Status registers dan Stack Pointers
    3.Process Control Information
    -Terdiri dari Scheduling and state information

    Five State Process Model

    cat

    Process Switch
    Berikut ini merupakan beberapa penyebab utama terjadinya Process Switch/Pengalihan Proses :
    -Clock interrupt
    -I/O interrupt
    -Memory Fault
    -Trap
    -Supervisor Call

    Process Suspension
    Berikut ini merupakan beberapa penyebab utama terjadinya Process Suspension/Penundaan Proses :
    -Swapping
    -Other OS reason
    -Interactive user request
    -Timing
    -Parent process request

    Execution Mode
    1.User Mode
    -Terdapat sedikit hak istimewa/privileged
    -Sebagian besar program dijalankan melalui mode ini
    2.System Mode, control mode or kernel mode
    -Terdapat banyak hak istimewa/privileged
    -Merupakan kernel dari OS

    Session 2 : Process (PartII)

    Process Management System Call – fork()
    Cara memanggil fork() :
    1.Membuat proses baru(didefinisikan sebagai child)
    2.Parent dan child dijalankan secara bersamaan
    3.Setiap proses dapat men-fork() proses lain hingga membuat suatu hirarki proses
    4.Proses dapat memilih untuk menunggu child untuk dihentikan

    Beberapa hal yang harus diperhatikan dalam fork() :
    1.returns -1 jika gagal
    2.returns 0 untuk child
    3.mengembalikan bilangan positif, child identifier(child PID) yang berada di parent
    4.Ketika fork() dijalankan,fork akan membuat copy yang identik dari address space
    5.Kedua proses dapat berjalan setelah itu
    6.Oleh karena itu parent dan child dapat berjalan secara terpisah/bebas

    ddsd

    fork() parent dan child process

    asada

    system()
    -Menjalankan perintah dari dalam sebuah program
    -perintah biasanya direprensentasikan dalam bentuk shell
    -Membuat subproses untuk menjalankan standard Bourne shell
    -Menggunakan /bin/sh
    -Pada GNU/LINUX system, shell menunjuk pada bash

    system() process
    #include
    int main ( )
    {
    int return_value ;
    return_value = system ( “ls -l /” );
    return return_value;
    }

    exec()
    -Memanggil salah satu kelompok/family exec() akan langsung menghentikan program yang sedang berjalan dan memulai eksekusi program baru yang telah diidentifikasi di parameter exec dalam konteks dari existing process
    -Process ID tidak berubah

    exec() family system calls
    -int execl( const char *path, const char *arg, …);
    -int execv( const char *path, char *const argv[]);
    -int execle( const char *path, const char *arg , …, char * const envp[]);
    -int execlp( const char *file, const char *arg, …);
    -int execvp( const char *file, char *const argv[]);

    fork() dan exec() process

    adadadwa

    Other System Calls
    1.exit()
    -Menghentikan proses secara normal
    -melakukan unblock parents yang telah menunggu
    2.wait()
    -digunakan oleh parent
    -parent menunggu child untuk membereskan eksekusi
    3.getpid()
    -Mengembalikan identifier dari proses pemanggilan
    4.getppid()
    -Mengembalikan identifier dari parent

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