180 likes | 421 Views
SISTEM OPERASI. Suratman suratman8@gmail.com 0878-234-1196. Operasi - Operasi Proses.
E N D
SISTEM OPERASI Suratman suratman8@gmail.com 0878-234-1196
Operasi-Operasi Proses • Proses dalamsistemdapatdieksekusisecarabersama-sama, proses tersebutharusdibuatdandihapussecaradinamis. Maka, sistemoperasiharusmenyediakansuatumekanismeumtukpembuatan proses danterminasiproses.
Pembuatan Proses • Suatu proses dapatmembuatbeberapa proses baru, melaluisistempemanggilanpembuatanproses, selamajalureksekusi. Pembuatan proses dinamakaninduk proses, sebagaimana proses baru di sebutanakdari proses tersbut. • Ketikasuatu proses membuat proses baru, duakemungkinanadadalam term eksekusi27. 1. Indukterusmenerusuntukmengeksekusisecarabersama- samadengananaknya. 2. Indukmenunggusampaisebagiandarianaknyatelahdiakhiri/terminasi. Jugaadaduakemungkinandalam term dariaddress space pada proses baru: 1. Anak proses adalahduplikatdariinduk proses. 2. Anak proses memiliki program yang terisikandidalamnya.
Terminasi Proses • Sebuah proses berakhirketika proses tersebutselesaimengeksekusipernyataanakhirnyadanmemintasistemoperasiuntukmenghapusnyadenganmenggunakansistempemanggilan exit. Padatitikitu, proses tersebutdapatmengembalikan data (keluaran) padaindukprosesnya (melaluisistempemanggilanwait) Seluruh sumber-sumber dari proses-termasuk memori fisik dan virtual, membuka berkas, dan penyimpananI/O di tempatkankembaliolehsistemoperasi. Ada situasitambahantertentuketikaterminasiterjadi. Sebuah proses dapatmenyebabkanterminasidariIndukdapatmenterminasi/ mengakhirisatudarianaknyauntukbeberapaalasan, seperti: • Anaktelahmelampauikegunaannyaatassebagaiansumber yang telahdiperuntukkanuntuknya. • Pekerjaan yang ditugaskankepadaanaktelahkeluar, dansistemoperasitidakmemeperbolehkansebuahanakuntukmeneruskanjikainduknyaberakhir.
HubunganAntar Proses • Sebelumnyakitatelahketahuiselukbelukdarisuatu proses mulaidaripengertiannya, carakerjanya, sampaioperasi-operasinyaseperti proses pembentukannyadan proses pemberhentiannyasetelahselesaimelakukan eksekusi. Kali ini kita akan mengulas bagaimana hubungan antar proses dapat berlangsung, misal bagaimana beberapa proses dapat saling berkomunikasi dan bekerja-sama.
Proses Yang Kooperatif Ada empatalasanuntukpenyediaansebuahlingkungan yang memperbolehkanterjadinya proses kooperatif: 1. Pembagianinformasi: apabilabeberapapenggunadapattertarikpadabagianinformasi yang sama (sebagaicontoh, sebuahberkasbersama), kitaharusmenyediakansebuahlingkungan yang mengizinkanaksessecaraterusmenerusketipedarisumber-sumbertersebut. 2. Kecepatanpenghitungan/ komputasi: jikakitamenginginkansebuahtugaskhususuntuk menjalankanlebihcepat, kitaharusmembagihaltersebutkedalam subtask, setiapbagiandari subtask akandijalankansecara parallel dengan yang lainnya. Peningkatankecepatandapat dilakukanhanyajikakomputertersebutmemilikielemen-elemenpemrosesanganda (seperti CPU ataujalur I/O). 3. Modularitas: kitamungkininginuntukmembangunsebuahsistempadasebuah model modular-modular, membagifungsisistemmenjadibeberapa proses atau threads. 4. Kenyamanan: bahkanseorangpenggunaindividumungkinmemilikibanyaktugasuntukdikerjakan secara bersamaan pada satu waktu. Sebagai contoh, seorang pengguna dapat mengedit, memcetak,
Komunikasi Proses DalamSistem • Cara lain untukmeningkatkanefek yang samaadalahuntuksistemoperasiyaituuntukmenyediakanalat-alatproses kooperatifuntukberkomunikasidengan yang lain lewatsebuah(IPC = Inter-Process Communication). IPC menyediakansebuahmekanismeuntukmengizinkan. • IPC adalahpenyedialayananterbaikdenganmenggnakansebuahsistempenyampaianpesan, dansistem-sistempesandapatdiberikandalambanyakcara.
SistemPenyampaianPesan • Fungsi dari sebuah sistem pesan adalah untuk memperbolehkan komunikasi satu dengan yang lain tanpa perlumenggunakanpembagian data. Berikutiniadabeberapametodeuntukmengimplementasikansebuahjaringandanoperasipengiriman/penerimaansecaralogika: • Komunikasilangsungatautidaklangsung. • Komunikasisecarasimetris/ asimetris. • Buffer otomatisataueksplisit. • Pengirimanberdasarkansalinanataureferensi. • Pesan berukuran pasti dan variabel.
Komunikasilangsung Setiap proses yang inginberkomunikasiharusmemilikinama yang bersifateksplisitbaikpenerimaanataupengirimdarikomunikasitersebut. Dalamkonteksini, pengirimandanpenerimaanpesansecaraprimitive dapatdijabarkansebagai: • Send (P, message) - mengirimsebuahpesanke proses P. • Receive (Q, message) - menerima sebuah pesan dari proses Q. Sebuahjaringankomunikasipadabahasaninimemilikibeberapasifat, yaitu: • Sebuahjaringan yang didirikansecaraotomatisdiantarasetiappasangdari proses yang ingindikomunikasikan. Proses tersebutharusmengetahuiidentitasdarisemua yang ingindikomunikasikan. • Sebuahjaringanadalahterdiridaripenggabungandua proses. • Diantarasetiappesandari proses terdapattepatsebuahjaringan.
KomunikasiTidaklangsung Dengankomunikasitidaklangsung, pesanakandikirimkanpadadanditerimadari/ melaluimailbox (kotaksurat) atau terminal-terminal, sebuahmailbox dapatdilihatsecaraabstraksebagaisebuahobjekdidalamsetiappesan yang dapatditempatkandari proses dandarisetiappesan yang bias dipindahkan. Setiapkotaksuratmemilikisebuahidentifikasi (identitas) yang unik, sebuah proses dapatberkomunikasidenganbeberapa proses lain melaluisebuahnomordarimailbox yang berbeda. Dua proses dapatsalingberkomunikasiapabilakedua proses tersebut sharing mailbox. Pengirimdanpenerimadapatdijabarkansebagai: • Send (A, message) - mengirim pesan ke mailbox A. • Receive (A, message) - menerima pesan dari mailbox A.
Sinkronisasi Komunikasiantara proses membutuhkan place by calls untukmengirimdanmenerima data primitive.Terdapatrancangan yang berbeda-bedadalamimplementasisetiap primitive. Pengirimanpesanmungkindapatdiblok (blocking) atautidakdapatdibloking (nonblocking) - jugadikenaldengannamasinkronatauasinkron. • Pengiriman yang diblok: Proses pengiriman di bloksampaipesanditerimaoleh proses penerima(receiving process) atauolehmailbox. • Pengiriman yang tidakdiblok: Proses pengirimanpesandanmengkalkulasioperasi. • Penerimaan yang diblok: Penerima mem blok samapai pesan tersedia. • Penerimaan yang tidak diblok: Penerima mengembalikan pesan valid atau null.
Buffering Baikkomunikasiitulangsungatautaklangsung, penukaranpesanoleh proses memerlukanantriansementara. Pada dasarnya, terdapat tiga jalan dimana antrian tersebut diimplementasikan: • Kapasitasnol: antrianmempunyaipanjangmaksimum 0, maka link tidakdapatmempunyaipenungguanpesan (message waiting). Dalamkasusini, pengirimharusmembloksampaipenerimamenerimapesan. • Kapasitasterbatas: antrianmempunyaipanjang yang telahditentukan, paling banyak n pesandapatdimasukkan. Jikaantriantidakpenuhketikapesandikirimkan, pesan yang baruakanmenimpa, danpengirimpengirimdapatmelanjutkaneksekusitanpamenunggu. Link mempunyaikapasitasterbatas.Jikalink penuh, pengirimharusmembloksampaiterdapatruangpadaantrian. • Kapasitastakterbatas: antrianmempunyaipanjang yang takterhingga, maka, semuapesandapatmenunggudisini. Pengirimtidakakanpernah di blok.
Model Multithreading • Sistem-sistem yang adasekarangsudahbanyak yang bisamendukunguntukkeduapenggunadankernel thread, sehingga model-model multithreading-nya pun menjadiberagam. Implementasimultithreading yang umumakankitabahasadatiga, yaitu model many-to-one, one-to-one, dan many-to-many.
KETENTUAN Model Many to One Model many-to-one inimemetakanbeberapatingkatanpengguna thread hanyakesatubuahkernel thread. Managemen proses thread dilakukanoleh (di ruang) pengguna, sehinggamenjadiefisien, tetapiapabilasebuah thread melakukansebuahpemblokinganterhadapsistempemanggilan, makaseluruhproses akanberhenti (blocked). Kelemahandari model iniadalahmultihreadstidakdapatberjalanataubekerjasecaraparalel di dalammultiprosesordikarenakanhanyasatu thread saja yang bisamengakseskernel dalamsuatuwaktu.
KETENTUAN Model One to One Model one-to-one memetakansetiap thread penggunakedalamsatu kernel thread. Hal inimembuatmodel one-to-one lebihsinkrondaripada model many-to-one denganmengizinkan thread lain untukberjalan ketika suatu thread membuat pemblokingan terhadap sistem pemanggilan; hal ini juga mengizinkanmultiple thread untukberjalansecara parallel dalammultiprosesor. Kelemahan model iniadalahdalampembuatan thread penggunadibutuhkanpembuatankorespondensi thread pengguna. Karenadalam proses pembuatan kernel thread dapatmempengaruhikinerjadariaplikasimakakebanyakandariimplementasi model inimembatasijumlah thread yang didukungolehsistem. Model one-to-one diimplementasikanoleh Windows NT dan OS/2.
KETENTUAN Model Many to Many Beberapatingkatanthread penggunadapatmenggunakanjumlah kernel thread yang lebihkecilatausamadenganjumlahthread pengguna. Jumlahdari kernel thread dapatdispesifikasikanuntukbeberapaaplikasidanbeberapamesin (suatuaplikasidapatdialokasikanlebihdaribeberapa kernel thread dalammultiprosesordaripadadalamuniprosesor) dimana model many-to-one mengizinkanpengembanguntukmembuatthread penggunasebanyakmungkin, konkurensitidakdapattercapaikarenahanyasatuthread yang dapatdijadualkanoleh kernel dalamsatuwaktu. Model one-to-one mempunyaikonkurensiyang lebihtinggi, tetapipengembangharushati-hatiuntuktidakmembuatterlalubanyak thread tanpaaplikasidandalamkasustertentumungkinjumlah thread yang dapatdibuatdibatasi.