SISTEM OPERASI
RIZKY ALFARIZI
18076091
2F12
FAKULTAS TEKNIK
2019/2020
1. KEAADAAN PROSES (PROCESS STATES)
Fungsi Utama sebuah prosesor adalah mengeksekusi instruksi mesin yang terdapat di
dalam memori utama.Instruksi tersebut diberikan dalam bentuk program.Seperti telah
dijelaskan pada bab sebelumnya,dengan alasan efisien dan kemudahan
pemrograman,prosesor dapat menggilir eksekusi sejumlah program.
Berdasarkan sudut pandang prosesor, prosesor mengeksekusi instruksi dari repertoire-
nya dengan urutan yang ditentukan oleh perubahan nilai pada register program
counter.Pada suatu saat tertentu, program counter (PC) dapat mengacu ke kode yang
berada di dalam program lainnya yang merupakan bagian aplikasi berbeda.Dari sudut
pandang sebuah program,eksekusinya melibatkan rangkaian instruksi yang terdapat
didalam program itu. Eksekusi sebuah program dikenal sebagai proses atau task. Kita
dapat merincikan perilaku sebuah proses dengan membuat daftar rangkaian instruksi
yang mengeksekusi proses tersebut.Pembuatan daftar seperti itu dikenal sebagai trace
sebuah proses.
Gambar 3.1 menunjukan suatu tata letak memori tiga proses. Untuk menyederhanakan
pembahasan, kita asumsikan tidak ada satu proses pun yang menggunakan memori
viryual; jadi ketiga proses tersebut direpresensikan oleh program yang
keseluruhannya dimuatkan ke dalam memori utama. Selain itu,terdapat program
dispatcher kecil yang memindahkan prosesor dari satu proses ke prosesor lainnya.
Gambar 3.2 menunjukkan trace ketiga proses tersebut pada saat bagian awal
eksekusinya.Ditunjukkan juga 12 instruksi pertama yang dieksekusi di dalam proses
A dan C. Proses B mengeksekusi empat instruksi,dan kita mengasumsikan bahwa
instruksi keempat memanggil operasi I/O yang mengakibatkankan proses harus
menunggu.
1. Pembuatan Proses
Pada saat sebuah proses akan ditambahkan keproses yang sedang dikelola, sistem
operasi membuat struktur data yang digunakan untuk mengelola proses dan
mengalokasikan ruang alamat ke proses itu. Tindakan ini merupakan pembuatan
proses baru. Empat buah event umum akan menyebabkan pembuatan proses
sepertidijelaskanpada Tabel 3.1 pada lingkungan batch, sebuah proses dibuat sebagai
respon terhadap penyerahan job. Pada lingkungan interaktif, proses dibuat apabila
seseorang pengguna baru masuk(logon) ke sistem. Sistem operasi dapat juga
membuat proses atas nama sebuah aplikasi.
Secara tradisional, sistem operasi membuat seluruh proses dengan cara transparan
bagi pengguna atau sistem operasi, dan cara ini masih umum di jumpai didalam
banyak sistem operasi modern. Akan tetapi, akan berguna apababila mengizinkan
sebuah proses dapat melakukan pembuatan proses lainnya. Misalnya , sebuah proses
aplikasi dan menghasilkan proses lainnya untuk menerima data yang dihasilkan oleh
aplikasi dan untuk mengorganisasikan data tersebut menjadi bentuk yang sesuai untuk
analisis selanjutnya. Proses baru itu berjalan parallel dengan aplikasi dan sekali-kali
diaktivasi apabila tersedia data yang baru. Cara seperti itu sangat berguna dalam
membuat struktur aplikasi. Sebagai contoh lainya, suatu proses server( misalnya, print
server, file server). Dapat menghasilkan proses baru bagi setiap permintaan yang
ditanganinya. Pada saat sistem operasi membuat sebuah proses atas permintaan
eksplisit sebuah proses lainya, aksinya disebut sebagai proses spawning( pembiakan
proses).
Pada sebuah proses pembiakan proses lainya, proses terdahulu dikenal sebagai proses
induk(prent proses) dan proses yang dibiakkan disebut proses anak (child proses).
Umumnya proses-proses yang berkaitan perlu terkomunikasi berkooperasi satu sama
lain. Cara mendapatkan kooperasi ini merupakan tugas yang sulit bagi program .
2. Penghentian proses
Tabel 3.2 merangkum alas an penghentian proses. Semua sistem komputer harus
memiliki cara untuk mengindikasikan telah selesainya sebuah proses. Sistem batch
job harus memiliki intruksi halt atau pangilan layanan sistem operasi ekplisit untuk
penhentian proses. Pada batch job, intruksi halt akan menghasilkan suatu interrupt
untuk meminta perhatian sistem operasi bahwa suatu proses telah selesai. Pada
aplikasi interaktif, aksi pengguna akan mengindikasikan apabila proses telah selesai.
Misalnya, pada sistem interrupt, proses untuk pengguna tertentu tertentu akan
dihentikan pada saat pengguna log off atau mematikan terminalnya.Pada sistem
komputer pribadi atau workstation,seorang pengguna dapat keluar dari aplikasi.Semua
aksi itu pada akhirnya akan menghasilkan permintaan layanan ke sistem operasi agar
menghentikan proses.
Tabel 3.2 Alasan-alasan penghentian proses
Terakhir dalam beberapa sistem operasi suatu proses dapat dihentikan oleh proses
yang dibuatnya atau apabila proses induknya itu sendiri yang dihentikan.
Apabila semua proses selalu berada dalam keadaan siap untuk melakukan
eksekusi,bentuk antrean yang ditunjukkan pada gambar 3.4b akan berlaku.
Antreannya adalah list yang first-in, first-out dan proses beroperasi dalam cara round-
robin terhadap proses yang ada. Bahkan dengan contoh yang sederhana pun yang
akan kita jelaskan,implementasi ini tidak memadai, beberapa proses yang berada
dalam keadaan not-running siap untuk melakukan eksekusi,sedangkan proses lainnya
diblokir, menunggu operasi i/o selesai. Jadi, dengan memakai antrean tunggal,
dispatcher tidak dapat hanya memilih proses yang berada diujung yang tertua pada
antrean didalam antrean paling lama.
Cara yang lebih alami dalam menangani situasi ini dengan membagi keadaan not
running menjadi dua keadaan : ready(siap) dan blocked(dblokir). Hal ini ditunjukkan
pada Gambar 3.5.untuk memperoleh ukuran yang lebih baik,kita telah menambahkan
dua keadaan lagi yang terbukti akan berguna.Lima keadaan didalam diagram yang
baru ini sebagai berikut:
Running (berjalan): proses yang sedang dieksekusi. Pada bab ini kita
mengamsumsikan sebuah komputer dengan prosesor tunggal karena itu pada
suatu saat paling banyak hanya sebuah proses berada dalam keadaan ini.
Ready (siap) : suatu proses yang disiapkan untuk melakukan ekseskusi bila
ada kesempatan
Blocked (diblokir): suatu proses yang tidak dapat mengeksekusi sampai
beberapa event terjadi seperti selesainya operasi i/o
New (baru): suatu proses yang baru saja dibuat namun belum pernah diizinkan
masuk ke pool proses-proses yang dapat dieksekusi oleh sistem operasi
Exit (keluar): suatu proses yang telah dibebaskan dari pool proses yang dapat
dieksekusi oleh sistem operasi baik karena dihentikan atau karerna dibatalkan
dengan alasan tertentu.
3. Penggunaan Penundaan
yang Lain Sejauh ini, kita telah menyamakan konsep suatu proses yang di tunda
dengan konsep proses yang tidak ada di dalam memori utama. Suatu proses yang
tidak berada didalam memori utama tidaklah dapat langsung dieksekusi, baik prose
situ sedang menunggu suatu event atau tidak.
Kita dapat melakukan gineralisai konsep proses yang di tunda ini. Kita tentukan
proses seperti itu memilki karakteristik berikut.
a. Proses tidak langsung dapat dieksekusi
b. Proses dapat menunggu suatu event atau tidak menunggu suatu event.
c. Proses di tempatkan dikeadaan yang ditunda oleh suatu agent
d. Proses tidak dapat dipindahkan dari keadaan ini sampai agent tersebut
memerintahkan pemindahan secara eksplisit.
2. DESKRIPSI APLIKASI
Sistem operasi mengontrol event yang terjadi didalam sistem komputer. Sistem
operasi menjadwalkan dan mengirimkan proses untuk dieksekusi oleh prosesor,
mengalokasikan sumber daya ke proses-proses dan memberikan respons terhadap
permintaan program layanan dasar pengguna. Pada dasarnya kita dapat menganggap
sistem operasi sebagai entity yang mengelola sumber daya yang digunakan oleh
proses.
Dalam lingkungan sistem multiproggramming, terdapat sejumlah proses (P1,
.,Pn)
yang telah dibuat dan berada di dalam virtual memori.Setiap proses,selama
mengalami eksekusi,memerlukan acces ke sumber daya tertentu pada sistem
,termasuk prosesor,perangkat I/O,dan memori utama pada gambar , proses P1 sedang
berjalan : sedikitnya bagian proses tersebut berada didalam memori, dan memiliki
kontrol atas kedua perangkat I/O.Proses P2 juga berada didalam memori utama ,
namun di blokir menunggu perangkat I/O yang dialokasikan ke P1 proses Pn diswap-
out dan karena itu ditunda.
Apabila ditujukan untuk mengelola proses dan sumber daya, sistem operasi harus
memiliki keadaan terakkhir setiap proses dan sumber datya tersebut. Pendekatan
yang bersifat umum untuk penyediaan informasi ini cukup mudah: Sistem operasi
membuat dan menjaga tabel informasi tentang setiap entity yang dikelolanya.
Gagasan umum tentang masalah ini diberikan, yang menunjukkan empat tabel
berbeda yang dimiliki oleh sistem operasi; memori I/O,file,dan proses. Walaupun
detailnya akan berbeda dari satu sistem operasi ke sistem operasi lainnya, pada
dasarnya semua sistem operasi memiliki informasi yang terdapat dikeempat
kategori itu.
Tabel memori digunakan untuk mengawasi baik main (real) memori maupun
memori virtual (sekunder) sebagian memori utama dicadangkan untuk digunakan
oleh sistem operasi; sedangkan sisanya dapat digunakan oleh proses. Proses
disimpan di dalam memori sekunder dengan memori virtual atau mekanisme
swapping sederhana. Tabel-tabel memori harus meliputi informasi berikut:
Alokasi memori utama yang diberikan kepada proses
Alokasi memori sekunder yang diberikan kepada proses
Atribut-atribut proteksi segmen memori utama dan memori virtual seperti
proses mana yang dapat mengakses daerah tertentu pada memori bagi
pakai
Informasi yang diperlukan untuk mengelola memori virtual
Tabel I/O digunakan oleh sistem operasi untuk mengelola perangkat I/O dan atau di-
assign ke proses tertentu. Apabila operasi I/O sedang berlangsung , sistem operasi
perlu mengetahui keadaan operasi I/O dan lokasi didalam memori utama yang dipakai
sebagai sumber atau tujuan pemindahan I/O.
Tabel File, sistem operasi dapat juga memiliki tabel tabel file, Tabel tabel ini
menyediakan informasi tentang keberadaan file, lokasinya dimemori sekunder, dan
keadaanya saat itu, serta atribut-atribut lainnya. Namun, tidak seluruhnya informasi
ini dapat dipelihara dan digunakan oleh sistem manajemen file, dengan sistem operasi
tidak banyak mengetahui atau tidak mengetahui sama sekali file. Pada sistem operasi
lainnya, banyak detail manajemen file dikelola oleh sistem perasi itu sendiri
Tabel Proses, sistem operasi harus memiliki tabel proses untuk mengelola proses. Sisa
subbab ini akan dicurahkan untuk membahas tabel tabel proses yang diperlukan.
Sebelum melanjutkan pembahasan ,terda[pat dua hal yang perlu diperhatikan :
Pertama, menunjukkan empat tabel yang berlainan, jelas bahwa tabel-tabel itu
harus dikaitkan atau direferensisilangkan dengan cara-cara tertentu. Memori
I/O dan sumber daya dikelola atas nama proses sehingga harus ada referensi
ke sumber daya tersebut secara langsung atau tidak langsung. Sidalam tabel
proses. File-file yang direferensikan di dalam tabel proses dapat diakses
melalui perangkat I/O dan kadang-kadang akan berada. Di dalam memori
utama atau memori virtual.Tabel itu sendiri harus dapat diakses oleh sistem
operasi dank arena itu merupakan bidang manajemen memori.
Kedua, berkaitan dengan pernyataan sebelumnya tentang sistem operasi yang
membuat dan memelihara tabel-tabel tersebut. Timbul pertanyaan yang
mendasar. Bagaimana sistem operasi tahu cara membuat tabeltabel itu untuk
pertama kalinya?Jelas sistem operasi harus memiliki pengetahuan lingkungan
dasar, seperti berapa jumlah memori utama yang tersedia, apa perangkat I/O-
nya,dan apa identifiernya, dan lain-lain. Hal ini merupakan masalah
konfigurasi. Jelasnya,pada saat dimulai, sistem operasi harus memiliki akses
ke beberapa data konfigurasi yang menentukan lingkungan dasarnya, dan data
tersebut harus dibuat diluar sistem operasi, dengan bantuan manusia .
Perhatikan apa yang harus diketahui sistem operasi apabila harus mengelola dan
mengontrol suatu proses. Pertama, sistem operasi harus mengetahui tempat lokasi
proses Kedua, sistem operasi harus mengetahui atribut proses yang diperlukan
untuk manajemen.
1. Lokasi Proses
Di mana suatu proses berlokasi atau apa atributnya?, Sebelumnya dibahas Apa
manifestasi fisik sebuah proses? Sedikitnya, suatu proses harus mencakup program
atau sekumpulan program yang akan dieksekusi, melibatkan stack, sejumlah atribut
yang digunakan oleh sistem operasi untuk pengontrolan proses yang disebut dengan
PCB (Process Control Block), yang kemudian disebut Process Image.
Lokasi proses image akan bergantung pada teknik manajemen memori yang
digunakan. Pada teknik yang paling sederhana, process image dijaga sebagai blok
memori yang kontigus.
2. Atribut Proses
Untuk saat ini, kita akan membahas jenis informasi yang akan berguna bagi sistem
operasi, tanpamemperhatikan detail tentang cara pengorganisasian informasi tersebut.
Dengan memahami tanggung jawab sebuah sistem operasi yang besar, jumlah
informasi akan lebih bisa dimengerti.
User-Visible Register
Sebuah user-visible register merupakan register yang dapat direferensi dengan
menggunakan bahasa mesin yang dieksekusi prosesor. Umumnya, terdapat mulai 8
hingga 32 register ini, walawpun beberapa implementasi mesin RISC memiliki lebih
dari 100 buah.
Penstrukturan Data
Sebuah proses dapat dihubungkan dengan proses lainnya didalam antrean, cincin, atau
struktur lainnya. Misalnya, semua proses yang memiliki prioritas tertentu dan sedang
berada dalam keadaan menunggu dapat di-link-kan dalam sebuah antrean. Sebuah
proses dapat menunjukan hubungan induk-anak (yang membuat-yang dibuat) dengan
proses lainnya. Process control blok dapat berisi pointer ke proses lainnya untuk
mendukung struktur ini.
Interprocess comunication
Bermacam-macam flag, signal, dan pesan dapat dikaitkan dengan komunikasi antara
dua proses yang independen. Beberapa atau seluruh informasi ini dapat disimpan di
dalam proses control blok.
Privelege Proses
Proses diberi privelege tertentu dalam kaitannya dengan memori yang dapat diakses
dan jenis intruksi yang dapat dieksekusi. Selain itu, privilage dapat diterapkan
terhadap penggunaan utilitas dan layanan sistem.
Manajemen Memori
Bagian ini dapat mencakup pointer ketabel-tabel segmen dan/ atau page yang
menjelaskan virtual memori yang di-assign ke proses itu.
Kita dapat mengelompokan informasi process control blok menjadi tiga kategori
umum:
Identifikasi proses
Informasi keadaan prosesor
Informasi control proses
Sebagai catatan, semua rancangan prosesor meliputi sebuah register atau sekumpulan
register, yang dikenal sebagai program status word (PSW), yang berisi informasi
keadaan. Umumnya PSW berisi kode-kode kondisi serta informasi keadaan lainnya.
Contoh PSW yang baik adalah PSW yang terdapat pada mesin-mesin Pentium, yang
disebut register EFLAGS.
Setiap process image terdiri dari sebuah process control blok, stack pengguna, ruang
alamat private proses, dan ruang proses lainnya yang digunakan b ersama-sama oleh
sebuah proses dengan proses lainnya. Pada gambar, setiap process image tampak
sebagai range alamat kontigus. Pada implementasi yang sebenarnya, range alamat
seperti itu mungkin hanya satu kasus; dan bergantung pada teknik manajemen memori
dan cara pengorganisasian struktur kontrol oleh sistem operasi.
Process control blok dapat berisi informasi berstruktur, termasuk pointer yang
mengizinkan menghubungkan PCB. Jadi, antrean yang telah dijelaskan pada subbab
sebelumnya dapat diimplementasikan sebagai linked list PCB. Misalnya, struktur
antrean pada Gambar 3.7a dapat diimplementasikan.
Process control blok menjadi masalah rancangan yang pnting. Beberapa routine
didalam sistem operasi akan memerlukan akses keinformasi di dalam process
control blok. Perlengkapan access langsung ke tabel-tabel ini tidak sulit.
Setiap proses dilengkapi dengan ID yang unik, dan ID ini dapat digunakan sebagai
indeks kedalam tabel pointer ke process control blok. Kesulitannya bukan pada
masalah access, namun pada proteksi. Terdapat dua masalah:
Suatu bug didalam sebuah routine, seperti interrupt handler, dapat merusak
proses control blok, yang akan menggangu kemampuan sistem untuk
mengelola proses yang terpengaruh.
Perubahan struktur atau sematik rancangan process control blok dapat
berpengaruh terhadap modul-modul didalam sistem operasi.
3. KONTROL PROSES
Mode yang lebih khusus di kenal sebagai mode sistem, mode kontrol, mode
kernel, istilah yang di sebut terakhir berkaitan dengan kernel sistem operasi yang
merupakan bagian sistem operasi yang meliputi fungsi sistem yang penting,
merupakan daftar fungsi umum yang di temukan di dalam kernel sebuah sistem
operasi.
Alasan untuk menggunakan dua mode cukup jelas, di perlukan proteksi bagi
sistem operasi dan tabel tabel sistem operasi yang penting, seperti proses control
block terhadap gangguan program pengguna, pada mode kernel software memiliki
control yang kompleks terhadap prosesor dan semua instruksi register dan
memorinya,tingkat kontrol ini tidak di perlukan dan untuk keselamatan, tidak
diinginkan bagi program2 pengguna. Timbul dua pertanyaan: bagaimana prosesor
mengetahui dalam metode yang sama yang mana eksekusi akan dilakukan, dan
bagaimana metode itu di ubah? Sehubungan pertanyaan pertama, biasanya
terdapat suatu bit di dalam program status word (PSW) yang mengendalikan
metode eksekusi. Bit ini akan berubah dalam merespon event event tertentu.
Misalnya, apabila seseorang pengguna melakukan panggilan layanan sistem
operasi, metode itu di setel ke mode kernel.
B. Pembuatan Proses
Sekali sistem operasi telah memutuskan dengan alasan apapun untuk membuat
proses baru sistem operasi dapat melakukannya adalah :
1. Meng-assign identifier proses yang unik ke proses yang baru itu. Pada saat ini
sebuah entri baru ditambahkan ke tabel proses primer, yang berisi sebuah entri per
prosesnya,. 2. Mengalokasikan ruang bagi proses. Pengalokasian ini mencakup
semua elemen proses image.
3. Proses control block harus dimulai. Bagian identifikasi proses berisi id proses
ini ditambah dengan id laiinnya yang sesuai, seperti id proses induk.
4. Linkage yang sesuai harus disiapkan.apabila sistem operasi memiliki setiap
antrean penjadwalannya sebagai suatu linked list, proses yang baru harus di taruh
pada list ready atau ready, suspend.
5. Mungin ada struktur data lainnya yang akan di buat atau di kembangkan.
Sistem operasi dapat memelihara file acounting pada setiap proses yang akan di
gunakan kemudian untuk keperluan penagihan dan/ atau kinerja.
Peralihan proses dapat terjadi setiap kali sistem operasi mendapatkan kontro
dari proses yang sedang berjalan saat itu. Memberikan event event yang dapat
memberikan kontrol ke sistem operasi.
Pertama, kita pehatikan interupt sistem. Seperti di lakukan oleh sebagian besar
sistem, sebenar nya kita dapat membedakan 2 jenis interupt sistem. Interupt
pertama cukup di sebut interupt, sedangkan interupt kedua di sebut trap, yang
di sebut pertama,yaitu interupt, di sebabkan oleh adanya event yang bersifat
eksternal dan independen terhadap proses yang sedang berjalan. Sementara
trap berkaitan dengan kondisi error atau exepsion yang di hasilkan di dalam
proses yang sedang berjalan itu, misalnya usaha mengakses suatu file secara
ilegal. Pada interupt yang biasa, pertama tama kontol di pidahkan ke sebuah
interupt hadler, yang melakukan pekerjaan rumah tangga dasar dan kemudian
bercabang ke suatu routine sistem operasi yang memperhatikan jenis interupt
tertentu yang tidak terjadi, sebagai berikut :
Clock interupt : sistem operasi menentukan apakah proses yang sedang
berjalan saat itu telah di eksekusi dalam waktu maksimum yang
diizinkan atau belum.
I/O interupt : sistem operasi menentukan aksi I/O apa yang telah
terjadi.
Memory fault : proseseo menemukan refaerensi alamat di dalam
memori virtual suatu word yang tidak ada di dalam memori utama.
2. Peralihan mode( mode switching)
Maka jelas bahwa peralihan mode merupakan konsep yang berbeda dengan
konsep peralihan proses. Peralihan mode dapat terjadi tanpa perubahan
keadaan proses yang saat itu berada pada keadaan running. Dalam hal ini,
penyimpanan konteksdan pengguanannya kembali memiliki sedikait overhead.
Namun, apabila proses yang sedang berjalan pada saat itu dipindahkan ke
keadaan lainnya ( Ready, Bloked, dan lain-lain), sistem operasi harus
melakukan perubahan penting di dalam lingkungannya. Langkah langkah
yang terjadi pada peralihan proses yang penuh, sebagai berikut:
a. Menyimpan konteks prosesor, termasuk program counter dan register
lainnya.
b. Mengupdate process control block yang sedang berada didalam keadaan
running update tersebut meliputi keadaan proses menjadi salah satu keadaan
lainnya (Ready;Bloked;Ready,Suspend; atau Exit). Field- field lainnya yang
juga harus di update, temasuk alas an meninggalanya keadaan Running dan
informasi accounting. c. Memindahakan proses control block proses tiu
keantriean yang sesuai( Ready, Bloked terhadap Event; Ready, Suspend).
d. Memilih proses lainnya untuk di ekseskusi; topic ini akan di bahas pada
bagian Empat.
e. Meng update process control block yang dipilih. Update ini meliputi
perubahan kedaan prose situ terjadi Running.
f. Mengupdate struktur data manajemen memori. Tergantung pada cara
mengelola terjemahan alamatnya, update ini dapat di perlukan ; topic ini akan
di bahas di bagian tiga.
g. Menggunakan proses konteks prosesor yang ada pada saat proses yang di
pilih terakhir dipidahkan keluar dari keadaan running, dengan memelukan
dalam nilai sebelumnya sebuah prigram counter dan register lainnya.