ARTIKEL TUGAS 2
PROSES
SISTEM OPERASI MULTIMEDIA
Disusun oleh :
MOH.IRVAN.HARIYONO
Nim: 1614311029
PROGRAM STUDI TEKNIK INFORMATIKA FAKULTAS
TEKNIK
UNIVERSITAS BHAYANGKARA
2019
PENDAHULUAN
Kami sekarang akan
memulai studi rinci tentang bagaimana sistem operasi dirancang dan dibangun.
Konsep paling sentral dalam sistem operasi apa pun adalah proses: abstraksi
dari program yang sedang berjalan. Segala sesuatu yang lain bergantung pada
konsep ini, dan penting bahwa perancang sistem operasi (dan siswa) memiliki
pemahaman menyeluruh tentang apa proses sedini mungkin. Proses adalah salah
satu abstraksi tertua dan paling penting yang disediakan sistem operasi. Mereka
mendukung kemampuan untuk melakukan operasi (pseudo) bersamaan bahkan ketika
hanya ada satu CPU yang tersedia. Mereka mengubah satu CPU menjadi beberapa CPU
virtual. Tanpa abstraksi proses, komputasi modem tidak akan ada.
PROSES
Semua komputer modern
sering melakukan beberapa hal pada saat bersamaan. Orang yang terbiasa bekerja
dengan komputer pribadi mungkin tidak sepenuhnya menyadari fakta ini, jadi
beberapa contoh mungkin memperjelas hal ini. Pertama pertimbangkan server Web.
Permintaan datang dari seluruh meminta halaman Web. Ketika permintaan masuk,
server memeriksa untuk melihat apakah halaman yang dibutuhkan ada dalam cache.
Jika ya, itu dikirim kembali; jika tidak, permintaan disk mulai mengambilnya.
Namun, dari sudut pandang CPU, permintaan disk tetap selamanya. Sambil menunggu
permintaan disk selesai, lebih banyak lagi dilihat dalam interval waktu yang
cukup lama, semua proses telah membuat kemajuan, tetapi pada saat tertentu
hanya satu proses yang benar-benar berjalan. Seperti Gambar dibawah ini.
Dalam bab ini, kita akan mengasumsikan hanya ada satu CPU. Namun, semakin
banyak anggapan itu tidak benar, karena chip baru seringkali multicore, dengan
dua, empat, atau lebih CPU. Kita akan melihat chip multicore dan multiprosesor,
tetapi untuk saat ini, lebih mudah hanya memikirkan satu CPU pada satu waktu.
Jadi ketika kita mengatakan bahwa CPU hanya dapat menjalankan satu proses pada
satu waktu, jika ada dua core (atau CPU), masing-masing dari mereka hanya dapat
menjalankan satu proses pada satu waktu.
Dengan CPU yang beralih dengan cepat bolak-balik di antara proses-proses
tersebut, laju di mana suatu proses melakukan komputasinya tidak akan seragam
dan bahkan mungkin tidak dapat direproduksi jika proses yang sama dijalankan
kembali. Dengan demikian, proses tidak boleh diprogram dengan asumsi bawaan
tentang waktu. Pertimbangkan, misalnya, proses I / O yang memulai pita streamer
untuk mengembalikan file yang dicadangkan, mengeksekusi loop kosong 10.000 kali
untuk mempercepatnya, dan kemudian mengeluarkan perintah untuk membaca catatan
pertama. Jika CPU memutuskan untuk beralih ke proses lain selama idle loop,
proses rekaman mungkin tidak berjalan lagi sampai setelah catatan pertama sudah
melewati kepala baca. Ketika suatu proses memiliki persyaratan real-time kritis
seperti ini, yaitu, peristiwa tertentu harus terjadi dalam jumlah milidetik
tertentu, tindakan khusus harus diambil untuk memastikan bahwa itu memang
terjadi. Namun, biasanya, sebagian besar proses tidak terpengaruh oleh
multiprogramming yang mendasari CPU atau kecepatan relatif dari proses yang
berbeda.
STATUS PROSES
Meskipun
setiap proses adalah entitas independen, dengan program counter sendiri dan
keadaan internal, proses sering perlu berinteraksi dengan proses lain. Satu proses
dapat menghasilkan beberapa output yang digunakan proses lain sebagai
input.Ketika suatu proses blok, ia melakukannya karena secara logis ia tidak
dapat melanjutkan, biasanya karena menunggu input yang belum tersedia.
Dimungkinkan juga untuk proses yang siap secara konsep dan dapat dijalankan
untuk dihentikan karena sistem operasi telah memutuskan untuk mengalokasikan
CPU ke proses lain untuk sementara waktu. Kedua kondisi ini sangat berbeda.
Dalam kasus pertama, penangguhan melekat pada masalah (Anda tidak dapat
memproses baris perintah pengguna sampai ketikan). Dalam kasus kedua, ini
adalah teknis dari sistem (tidak cukup CPU untuk memberikan setiap proses
prosesor pribadinya sendiri). Seperti Berikut ini :
1. Berjalan
(sebenarnya menggunakan CPU pada saat itu).
2. Ready (runnable;
sementara dihentikan untuk membiarkan proses lain berjalan).
3. Diblokir (tidak
dapat berjalan sampai beberapa peristiwa eksternal terjadi).
Secara
logis, dua kondisi pertama serupa. Dalam kedua kasus, proses bersedia
dijalankan, hanya di yang kedua, untuk sementara tidak ada CPU yang tersedia.
Keadaan ketiga berbeda dari dua yang pertama dalam proses yang tidak dapat
berjalan, bahkan jika CPU tidak ada lagi yang harus dilakukan. seperti berikut
ini :
IMPLEMENTASI PROSES
alamat
prosedur layanan interupsi. Misalkan proses pengguna 3 sedang berjalan ketika
disk mengganggu terjadi. Penghitung program proses pengguna, kata status
program, dan kadang-kadang satu atau lebih register didorong ke tumpukan (saat
ini) oleh perangkat keras interupsi. Komputer kemudian melompat ke alamat yang
ditentukan dalam vektor interupsi. Itulah yang dilakukan perangkat keras. Mulai
sekarang, tergantung pada perangkat lunak, khususnya, prosedur layanan
interupsi.
Semua
interupsi dimulai dengan menyimpan register, seringkali dalam entri tabel
proses untuk proses saat ini. Kemudian informasi yang didorong ke tumpukan oleh
interupsi dihapus dan penunjuk tumpukan diatur untuk menunjuk ke tumpukan
sementara yang digunakan oleh penangan proses. Tindakan seperti menyimpan
register dan mengatur stack pointer bahkan tidak dapat diekspresikan dalam
bahasa tingkat tinggi seperti C, sehingga mereka dilakukan oleh rutin bahasa
assembly kecil, biasanya yang sama untuk semua gangguan karena pekerjaan
menyimpan register adalah identik, tidak peduli apa penyebab interupsi itu.
Ketika
rutin ini selesai, ia memanggil prosedur C untuk melakukan sisa pekerjaan untuk
tipe interupsi spesifik ini. (Kami menganggap sistem operasi ditulis dalam C,
pilihan yang biasa untuk semua sistem operasi nyata.) Ketika telah melakukan
tugasnya, mungkin membuat beberapa proses sekarang siap, penjadwal dipanggil
untuk melihat siapa yang akan menjalankan selanjutnya. Setelah itu, kontrol
dilewatkan kembali ke kode bahasa assembly untuk memuat register dan peta
memori untuk proses sekarang-saat ini dan mulai berjalan. Penanganan dan
penjadwalan yang terganggu. Perlu dicatat bahwa rinciannya agak berbeda dari
satu sistem ke sistem lainnya. Seperti berikut ini :
1. Perangkat keras
menghitung penghitung program, dll.
2. Perangkat keras
memuat penghitung program baru dari vektor interupsi.
3. Prosedur bahasa
assembly menyimpan register.
4. Prosedur bahasa
assembly mengatur tumpukan baru.
5. Layanan interupsi C
berjalan {biasanya membaca dan buffer input).
6. Penjadwal
memutuskan proses mana yang akan dijalankan selanjutnya.
7. Prosedur C kembali
ke kode rakitan.
8. Prosedur bahasa
assembly memulai proses baru saat ini.
Ketika
proses selesai, sistem operasi menampilkan karakter yang cepat dan menunggu
perintah baru. Ketika menerima perintah, itu memuat program baru ke dalam
memori, menimpa yang pertama.
Pemodelan Multiprogramming
Untuk mengimplementasikan model proses, sistem operasi memelihara
tabel (array struktur), yang disebut tabel proses, dengan satu entri per
proses. (Beberapa penulis menyebut entri ini blok kontrol proses.) Entri ini
berisi informasi penting tentang status proses, termasuk penghitung programnya,
penunjuk tumpukan, alokasi memori, status file yang terbuka, informasi
akuntansi dan penjadwalannya, dan segala hal lain tentang proses yang harus
disimpan ketika proses dialihkan dari menjalankan ke status siap atau diblokir
sehingga dapat dimulai kembali nanti seolah-olah tidak pernah telah dihentikan.
seperti berikut ini :
Bidang di
kolom pertama terkait dengan manajemen proses. Dua lainnya berhubungan dengan
manajemen memori dan manajemen file, masing-masing. Perlu dicatat bahwa bidang
mana yang dimiliki tabel proses sangat tergantung pada sistem, tetapi gambar
ini memberikan gambaran umum tentang jenis informasi yang dibutuhkan. seperti
berikut ini.
Sekarang
kita telah melihat tabel proses, dimungkinkan untuk menjelaskan sedikit lebih
banyak tentang bagaimana ilusi dari beberapa proses berurutan dipertahankan
pada satu (atau masing-masing) CPU. Terkait dengan setiap kelas I / O adalah
lokasi (biasanya di lokasi tetap dekat bagian bawah memori) yang disebut vektor
interupsi.
No comments:
Post a Comment