180 likes | 306 Views
PERTEMUAN 5. PROSES DAN THREAD 1. PROSES ( pendahuluan ).
E N D
PERTEMUAN 5 PROSES DAN THREAD 1
PROSES (pendahuluan) Proses didefinisikansebagai program yang sedangdieksekusi. MenurutSilberschatz proses tidakhanyasekedarsuatukode program (text section), melainkanmeliputibeberapaaktivitasyang bersangkutanseperti program counter dan stack. Sebuah proses jugamelibatkan stack yang berisi data sementara (parameter fungsi/metode, return address, danvariabellokal) dan data section yang menyimpanvariabel-variabel global. Tanenbaumjugaberpendapatbahwa proses adalahsebuah program yang dieksekusi yang mencakup program counter, register, danvariabel di dalamnya. Keterkaitanhubunganantara proses denganSistemOperasiterlihatdaricaraSistemOperasimenjalankan/mengeksekusiproses. SistemOperasimengeksekusi proses denganduacarayaitu BATCH SYSTEM yang mengeksekusiJOBS dan TIME-SHARED SYSTEM yang mengaturpengeksekusian program pengguna (user) atauTASKS. Bahkanpadasistempenggunatunggal (single user) pun seperti Microsoft Windows dan Mac OS, seorangpenggunamampumenjalankanbeberapa program padasaatyang sama, seperti Spread Sheet, Web Browser, dan Web Email. Bahkanjikapenggunahanyamenggunakansatu program sajapadasatuwaktu, sistemoperasiperlumendukungprogram internalnyasendiri, sepertimanajemenmemori. Dengan kata lain, semuaaktivitastersebutadalah identiksehinggakitamenyebutnya ''Proses''. Program itusendiribukanlahsebuah proses.
PROSES (pembentukan) Saatkomputerberjalan, terdapatbanyak proses yang berjalansecarabersamaan. Sebuahproses dibuatmelaluiSYSTEM CALL CREATE-PROCESS membentukproses turunan(CHILD PROCESS) yang dilakukanoleh proses indukPARENT PROCESS. Proses turunantersebutjugamampumembuatproses barusehinggakesemua proses-proses inipadaakhirnyamembentukpohon proses. Terdapat 2 (dua) kemungkinanbagaimanajalannya (running) proses indukdanturunanberjalan (running). Proses-proses tersebutberjalansecarakonkurenatau proses indukmenunggusampaibeberapa/seluruhproses turunannyaselesaiberjalan. Jugaterdapatduakemungkinandalampemberianruangalamat (address space) proses yang baru. Proses turunandapatmerupakanduplikasi.
PROSES (terminasi) Suatu proses diterminasiketika proses tersebuttelahselesaimengeksekusiperintahterakhirsertamemintasistemoperasiuntukmenghapusperintahtersebutdenganmenggunakan system call exit. Padasaatitu, proses dapatmengembalikan data keluarankepada proses induk-nyamelaluisystem call wait. Semuasumber-daya yang digunakanoleh proses akandialokasikankembaliolehsistemoperasiagar dapatdimanfaatkanoleh proses lain. Suatuproses jugadapatditerminasidengansengajaoleh proses lain melalui system call abort. Biasanya proses indukmelakukanhalinipadaturunannya. Alasanterminasitersebutseperti: • Turunanmelampauipenggunaansumber-daya yang telahdialokasikan. Dalamkeadaanini, proses indukperlumempunyaimekanismeuntukmemeriksa status turunannya-nya. • Task yang ditugaskankepadaturunantidaklagidiperlukan. • Proses indukselesai, dansistemoperasitidakmengizinkan proses turunanuntuktetapberjalan. Jadi, semua proses turunanakanberakhir pula. Hal ini yang disebut cascading termination
PROSES (status) Sebuah proses dapatmemilikitiga status utamayaitu: • Running: status yang dimilikipadasaatinstruksi-instruksidarisebuah proses dieksekusi. • Waiting: status yang dimilikipadasaat proses menunggusuatusebuah event seperti proses M/K. • Ready: status yang dimilikipadasaat proses siapuntukdieksekusiolehprosesor. Terdapatdua status tambahan, yaitusaatpembentukandanterminasi: • New: status yang dimilikipadasaat proses barusajadibuat. • Terminated: status yang dimilikipadasaat proses telahselesaidieksekusi.
PROSES (status utama) Hanyasatu proses yang dapatberjalanpadaprosesormana pun padasatuwaktu. Namun, banyak proses yang dapatberstatus Ready atau Waiting. Ada tigakemungkinanbilasebuah proses memiliki status Running: • Jikaprogram telahselesaidieksekusimaka status dari proses tersebutakanberubahmenjadi Terminated. • Jikawaktu yang disediakanoleh OS untuk proses tersebutsudahhabismakaakanterjadi interrupt dan proses tersebutkiniberstatus Ready. • Jikasuatu event terjadipadasaat proses dieksekusi (sepertiadapermintaan M/K) makaproses tersebutakanmenunggu event tersebutselesaidan proses berstatus Waiting
PROSES CONTROL BLOCK (PCB) Setiap proses digambarkandalamsistemoperasiolehsebuah process control block (PCB) – jugadisebutsebuah control block. Sebuah PCB ditunjukkandalam “Process Control Block”. PCB berisikanbanyakbagiandariinformasi yang berhubungandengansebuah proses yang spesifik, termasukhal-hal di bawahini: • Status proses: status mungkin, new, ready, running, waiting, halted, danjugabanyaklagi. • Program counter: suatu stack yang berisialamatdariinstruksiselanjutnyauntukdieksekusiuntuk proses ini. • CPU register: Register bervariasidalamjumlahdanjenis, tergantungpadarancangankomputer. • Register tersebuttermasuk accumulator, register indeks, stack pointer, general-purposes register, ditambahcode information padakondisiapa pun. Besertadengan program counter, keadaan/status informasiharusdisimpanketikagangguanterjadi, untukmemungkinkanproses tersebutberjalan/bekerjadenganbenarsetelahnya (lihatGambar 10.3, “Status Proses”). • Informasimanajemenmemori: Informasiinidapattermasuksuatuinformasisebagainilaidaridasardanbatas register, tabel page/halaman, atautabelsegmentergantungpadasistemmemori yang digunakanolehsistemoperasi (lihatBagian V, “Memori”). • Informasipencatatan: Informasiinitermasukjumlahdari CPU danwakturiil yang digunakan, bataswaktu, jumlahakunjumlah job atau proses, danbanyaklagi. • Informasistatus M/K: Informasitermasukdaftardariperangkat M/K yang di gunakanpada proses ini, suatudaftarberkas-berkas yang sedangdiaksesdanbanyaklagi. • PCB hanyaberfungsisebagaitempatpenyimpananinformasi yang dapatbervariasidariproses yang satudengan yang lain
Gambar PROSES CONTROL BLOCK (PCB)
HIRARKI PROSES Sistemoperasi yang mendukungkonsep proses harusmenyediakanbeberapacarauntukmembuatseluruhproses yang dibutuhkan. Padasistem yang simple atausistem yang didisainuntukmenjalankanapplikasisederhana, sangatmungkinuntukmendapatkanseluruh proses yang akandibutuhkanitu, terjadipadawaktusistemdimulai. Padakebanyakan system bagaimanapunjugabeberapacaradibutuhkanuntukmembuatdanmenghacurkanselamaoperasi. Hieraki proses biasanyatidaksangat deep (lebihdaritigatingkatanadalahtidakwajar), dimanahierarkiberkasumumnyaempatatau lima. Hierarki proses typically short-lived, kebanyakanumumnyacumabeberapamenitsaja, tapihierarkidirektorinyadapat exist sampaibertahun-tahun. Pemilikandanperlindunganjugamembedakanantara proses danberkas-berkas. Biasanyahanya proses induk yang dapatmengendalikanataubahkanmengaksessebuah proses turunan, tapimekanismenyamembolehkanberkas-berkasdandirektoridibacaolehgrupdaripadahanyapemilik.
Rangkuman Proses Sebuah proses adalahsuatu program yang sedangdieksekusi. Proses lebihdarisebuahkodeprogram tetapijugamencakup program counter, stack, dansebuah data section. Dalampengeksekusiannyasebuahproses jugamemiliki status yang mencerminkankeadaandari proses tersebut. Status dari proses dapatberubah-ubahsetiapsaatsesuaidengankondisinya. Status tersebutmungkinmenjadisatudari lima status berikut: new, ready, running, waiting, atau terminated. Setiap proses jugadirepresentasikanolehProces Control Block (PCB) yang menyimpansegalainformasiyang berkaitandengan proses tersebut.
THREAD (definisi) Thread adalahsebuahpengontrolaliran program pelaksanaan program denganmenggunakankendalitunggal. Operasi yang paling Modern saatiniadalahsistem yang banyaksekalimenyediakanberbagaicara, danmemungkinkansuatu proses terkendalidenganbaik.
THREAD (konsep) Sejauhini, proses merupakansebuah program yang mengeksekusi thread tunggal. Kendalithread tunggalinihanyamemungkinkan proses untukmenjalankansatutugaspadasatuwaktu. Banyaksistemoperasi modern telahmemilikikonsep yang dikembangkan agar memungkinkansebuah proses untukmengeksekusi multi-threads. Umpamanya, secarabersamaanmengetikdanmenjalankanpemeriksaanejaandidalam proses yang sama. Thread merupakan unit dasardaripenggunaan CPU, yang terdiridariThread_ID, program counter, register set, dan stack. Sebuah thread berbagi code section, data section, dansumberdayasistemoperasidengan Thread lain yang dimilikioleh proses yang sama. Thread jugaseringdisebut lightweight process. Sebuah proses tradisionalatau heavyweight process mempunyai thread tunggal yang berfungsisebagaipengendali. Perbedaannyaialah proses dengan thread yang banyak– mengerjakanlebihdarisatutugaspadasatusatuanwaktu
MULTI-THREAD (konsep) Padaumumnya, perangkatlunak yang berjalanpadakomputer modern dirancangsecara multi-threading. Sebuahaplikasibiasanyadiimplementasisebagai proses yang terpisahdenganbeberapathread yang berfungsisebagaipengendali. Contohnyasebuah web browser mempunyai thread untukmenampilkangambaratautulisansedangkan thread yang lain berfungsisebagaipenerimadata darinetwork. Terkadangadasebuahaplikasi yang perlumenjalankanbeberapatugas yang serupa. Sebagai contohnyasebuah web server dapatmempunyairatusanklien yang mengaksesnyasecara concurrent. Kalau web server berjalansebagai proses yang hanyamempunyai thread tunggalmakaiahanyadapatmelayanisatuklienpadapadasatusatuanwaktu. Bilaadaklien lain yang inginmengajukanpermintaanmakaiaharusmenunggusampaikliensebelumnyaselesaidilayani. Solusinyaadalahdenganmembuat web server menjadi multi-threading. Denganinimakasebuah web server akanmembuat thread yang akanmendengarpermintaanklien, ketikapermintaanlain diajukanmaka web server akanmenciptakan thread lain yang akanmelayanipermintaantersebut.
THREAD (keuntungan) • Responsif. Aplikasiinteraktifmenjaditetapresponsifmeski pun sebagiandari program sedangdiblokataumelakukanoperasi yang panjangkepadapengguna. Umpamanya, sebuah thread dari web browser dapatmelayanipermintaanpenggunasementara thread lain berusahamenampilkangambar. • Berbagisumberdaya. thread berbagimemoridansumberdayadengan thread lain yang dimilikioleh proses yang sama. Keuntungandariberbagikodeadalahmengizinkansebuahaplikasiuntukmempunyaibeberapa thread yang berbedadalamlokasimemori yang sama. • Ekonomis. Pembuatansebuah proses memerlukandibutuhkanpengalokasianmemoridansumberdaya. Alternatifnyaadalahdenganpenggunaan thread, karena thread berbagimemoridansumberdaya proses yang memilikinyamakaakanlebihekonomisuntukmembuatdan context switch thread. Akan susahuntukmengukurperbedaanwaktuantara proses danthread dalamhalpembuatandanpengaturan, tetapisecaraumumpembuatandanpengaturanproses lebihlama dibandingkan thread. Pada Solaris, pembuatan proses lebih lama 30 kali dibandingkanpembuatanthread, dan context switch proses 5 kali lebih lama dibandingkan context switch thread. • Utilisasiarsitektur multiprocessor. Keuntungandari multithreading dapatsangatmeningkatpadaarsitektur multiprocessor, dimanasetiap thread dapatberjalansecarapararel di atas processor yang berbeda. Padaarsitektur processor tunggal, CPU menjalankansetiapthread secarabergantiantetapihaliniberlangsungsangatcepatsehinggamenciptakanilusipararel, tetapipadakenyataannyahanyasatu thread yang dijalankan CPU padasatu-satuanwaktu (satu-satuanwaktupada CPU biasadisebut time slice atau quantum).
LATIHAN SOAL • Tunjukkanduacontohpemrogramandari multithreading yang dapatmeningkatkansebuahsolusi thread tunggal. • Tunjukkanduacontohpemrogramandari multithreading yang tidakdapatmeningkatkansebuahsolusi thread tunggal. • Sebutkanduaperbedaanantara user level thread dan kernel thread. Saatkondisibagaimanasalahsatudari thread tersebutlebihbaik • Jelaskantindakan yang diambilolehsebuah kernel saatalihkonteksantara kernel level thread. • Sumberdayaapasajakah yang digunakanketikasebuah thread dibuat? Apa yang membedakannyadenganpembentukansebuah proses. • Tunjukkantindakan yang diambilolehsebuah thread library saatalihkonteksantara user level thread. • Sebutkan lima aktivitassistemoperasi yang merupakancontohdarisuatumanagemen proses. • Definisikanperbedaanantarapenjadualan short term, medium term dan long term. • Jelaskantindakan yang diambilolehsebuah kernel ketikaalihkonteksantar proses. • Informasiapasaja yang disimpanpadatabel proses saatalihkonteksdarisatu proses ke proses lain.
Next…. PERTEMUAN - 6