Kode-kode instruksi program di simpan sebagai berkas pada media penyimpanan sekunder seperti magnetik disk Eksekusi suatu program bukan sekedar eksekusi kode-kode instruksi tapi melibatkan pengelolan informasinya Proses adalah program yang sedang berjalan atau dieksekusi Konkurensi adalah sistem yang memiliki sejumlah aktifitas yang sedang berjalan secara “bersamaan”. Multiprosessing adalah sistem yang mengerjakan semuanya secara bersamaan (pararel) Konkurensi di implementasikan dengan : • menjalankan proses secara bersamaan pada prosesor yang berbeda (overlapping) • Menjalankan proses secara bergantian pada prosesor tertentu (interleaving) Multitasking sistem yang mengerjakan secara bergantian Konkurensi diimplementasikan dengan : • Menjadwal eksekusi prose secara bergantian (interleaving) • Pergantian proses berlangsung sangat cepat sekali sehingga pemakai tidak akan menyadari adanya pergantian proses. Contoh kasusnya Tukang bangunan A & B 1. Proses tidak saling mempengaruhi Terjadi pada proses yang tidak dalam hal berhubungan keculai prosesor. Ms word dengan window media player 2. 3. saling pakai Proses saling mempengaruhi secara tidak langsung terjadi pada proses yang tidak saling berkerja sama tapi tapi mengakses sumber daya yang sama. contohnya word & notepad yang membuka berkas yang sama Proses saling memperngaruhi secara langsung terjadi pada proses yang saling bekerjasama Race Kondition • Jika ada dua atau lebih proses yang berusaha mengakses dan melakukan sumber daya yang sama operasi pada Deadlock • Terjadi pada saat proses membutuhkan sumber daya tetapi sedang digunakan oleh proses yang lain, karena tidaka ada yang mau mengalah maka berhenti semua Starvasiion • Terjadi pada saat suatu proses selalu kalah dalam memperebutkan sumber daya sehingga prosesnya tertunda terus-menerus 1. 2. 3. 4. 5. 6. Mengawasi berbagai proses aktif (PSB) Melakukan penjadwalan prose secara adil Melakukan alokasi dan dealokasi berbagai sumber daya untuk masingmasing proses aktif Melindungi sumberdaya yang sedang digunakan oleh suatu proses terhadap proses lain Menjaga jumlah data yang dialirkan ke/dari piranti I/O selau konstan Mempasilitasi komunikasi proses konkuren satu dengan yang lainnya Model 3 status New admitted terminated interrup Ready I/O or event completion exit running schedule waiting I/O or event wait New • Masih dalam tahap inisiasi oleh prosedur • Meliputi alokasi memory utama untuk proses • Pengisian tabel proses • Pembuatan struktur data kendali untuk menyimpan informasi dan status proses • Belum siap untuk di eksekusi • Kondisi yang memicu proses new Login ke sistem operasi Permintaaan eksekusi program Aplikasi yang menciptakan proses anak Penciptaan proses baru dari eksekusi batch Ready • Proses yang telah berhasil di inisiasi • Antrian penjadwalan prosesor dengan cara menyisipkan proses baru ke dalam antrian • Berisi referensi atau pointer ke struktur data kendali proses • Menandakan suatu proses siap berkompetisi untuk mendapatkan alokasi prosesor • Schduler adalah sistem operasi yang bertugas untuk memilih proses yang berada dalam proses ready Running • Proses menguasi prosesor sepenuhnya • Memiliki tiga kemungkinan Teminated, proses yang telah selesai Ready, jika jatah waktu yang dialokasikan sudah habis blocked Blocked/Waiting • Proses membutuhkan pembacaan data dari piranti I/O • Proses ini akan disisipkan pada antrian penjadwalan peranti I/O atau event • Jika I/O yang di tunggu sudah selesai makan proses akan kembali ke antrian ready dan menunggu pemillihan oleh schedule EXIT/Terminated • Proses tersebut sudah dihentikan eksekusinya Proses telah selesai secara normal Batas waktu total sudah terlewati Kekurang ruang memory Pelanggaran batas memory Pelanggaran proteksi berkas Kesalahan aritmatika Waktu tunggu melebihi batas Terjadi kegagalan I/O Instruksi tidak benar Terjadi pemakaian instruksi yang tidak di izinkan Model 5 status TimeOut Submit Dispatch Ready Running Event occur Completion Event wait Blocked Resume Suspend Dispatch Suspended Ready I/O completion atau event completion Resume Suspend Suspended blocked Pada diagram 3 keadaan proses blocked dapat berlangsung lama dan ruang memory utama tidak dapat digunakan oleh proses yang lain Untuk mengatasi hal itu maka dibuat status suspended blocked Penundaan eksekusi proses yang bersatutus blocked yang dilakukan oleh sistem ataupun proses lain akan menyebabkan status proses beralih menjadi suspendedblocked PENGERTIAN • Struktur data yang dibentuk dan di pelihara oleh SO yang menyimpan informasi mengenai setiap sumber daya yang dikelolanya Gambar Proc Proc Proc Process Image Proc Tabel Memory • • • • Alokasi memory utama untuk proses-proses Alokasi memotu maya untuk proses Atribut proteksi terhadap memory Informasi yang diperlukan untuk mengatur memory Tabel I/O • Mencatat status piranti I/O • Mengetahui apakah saluran sistem komputer dalam keadaan bebas atau sedang terpakai • Penyalinan/pembacaan data I/O di memory utama Tabel Berkas • Mencatat informasi berkas yang diakses oleh proses: lakasinya di memory, statusnya , hak akses, serta atribut berkas lainnya Tabel proses • Mencatat informasi mengenai status dari setiap proses Adalah keseluruhan lokasi memory yang digunakan untuk eksekusi suatu proses Proses image dapat berupa : • • • • Sebuah blog berurutan (contigous block) Blog dengan ukuran berpariasi (segmentasi) Blog denga ukuran sama (halaman) Kombinasi antara segmentas & halaman (hybrid) Elemen image proses • Data Pengguna (user data) Image proses yang dapat di modifikasi, meliputi data program • Kode program (user program) Image proses yang menyimpan kode instruksi program yang akan di eksekusi • Sistem Stack (user stack) Struktur data yang bekerja berdasarkan proses LIFO • Process Control Block (PCB) Menyimpan informasi yang diperlukan SO untuk mengontrol/mengelola proses Identifikasi Proses Informasi status proses Informasi kendali proses Stack pemakai Ruang alamat yang khusus diperuntukkan pemakai (program, data) Ruang alamat bersama PCB SO memerlukan banyak informasi mengenai proses, untuk ? Informasi ini ada di ? Struktur datanya menyimpan informasi lengkap mengenai proses sehingga dapat terjadi siklus hidup proses Informasi di PCB dikelompokkan • Informasi identifikasi proses • Informasi status proses • Informasi kendali proses Berkaitan dengan identitas proses yang unik Dengan identifier ini proses dikaitkan ke tabel-tabel lain Identifiernya adalah numerik yang meliputi • Identifier proses • Identifier proses yang menciptakan • Identifier pemakai Informasi ini esensinya terdiri dari registerregister pemroses. Saat proses berstatus running, informasiinformasi ini berada di (register-register ?). Ketika proses diinterupsi semua informasi register harus disimpan agar dapat dikembalikan saat proses dieksekusi kembali • Jumlah dan ragam register arsitektur komputernya bergantung pada Adalah informasi-informasi lain yang diperlukan SO untuk mengendalikan dan koordinasi beragam proses aktif Elemen process control information : • Schedulling & state infromartion Berisi infromasi untuk penjadwalan, status proses, prioritas,identitas event • Data structuring Berisi link dengan proses lain dalam antion atau ring • Interprocess communicario Flag, signal dan pesan yang digunakan untuk komunikasi antar proses. • Process privilages Kewenangan proses atas memori dan tipe instruksi • Memory management Pointer ke tabel segmen ataupun tabel halaman dari memori maya • Resource ownership & utilization Berisi sejarah pengguanaan sumber daya yang akan digunakan untuk penjadwalan Setiap proses digambarkan dalam sistem operasi oleh sebuah process control block (PCB) – juga disebut sebuah control block. Gambar Process Control Block PCB berisikan banyak bagian dari informasi yang berhubungan dengan sebuah proses yang spesifik, termasuk hal-hal di bawah ini: Status Proses Program counter CPU Register Informasi Manajemen Memori Informasi pencatatan Unit of resource ownership Memakai sebuah alamat virtual, memakai memory utama selama proses dan diberi kedali terhadap sumber daya Unit of dispathing/thread Proses yang memakai satu jalur eksekusi(trace) Thread merupakan unit dasar dari penggunaan CPU, yang terdiri dari Thread_ID, program counter,register set, dan stack. Sebuah thread berbagi code section, data section, dan sumber daya sistem operasi dengan Thread lain yang dimiliki oleh proses yang sama Thread juga sering disebut lightweight process. Gambar Thread Thread kernel didukung langsung oleh sistem operasi. Pembuatan, penjadwalan, dan manajemen thread dilakukan oleh kernel pada kernel space. Thread diatur oleh kernel, karena itu jika sebuah thread menjalankan blocking system call maka kernel dapat menjadwalkan thread lain di aplikasi untuk melakukan eksekusi. Pada lingkungan multiprocessor, kernel dapat menjadwal thread-thread pada processor yang berbeda. Contoh sistem operasi yang mendukung kernel thread adalah Windows NT, Solaris, Digital UNIX. Many To One One To One Many To Many Pada awal setiap siklus instruksi, CPU membaca instruksi dari memori. Sebuah register yang disebut Program Counter (PC) digunakan untuk menunjukkan alamat instruksi yang akan diambil dari memori. Setiap kali sebuah instruksi dibaca, isi PC akan ditambah sehingga CPU akan membaca instruksi selanjutnya secara berurutan. Misalkan isi PC=300 Register internal CPU: • Program Counter (PC) = menyimpan alamat instruksi • Instruction Register (IR) = menampung instruksi yang sedang dieksekusi • Accumulator (AC) = register penyimpanan temporer Misalkan ada sebuah komputer yang memiliki karakteristik sebagai berikut : • Instruksi dan data panjangnya 16 bit. • Tiap alamat memori menyimpan 16 bit data atau instruksi. • Format instruksi : 0 3 4 Instruksi alamat 16 • Kode atau instruksi: 0001 = Isi memori, yang alamatnya dinyatakan pada bit 4 sampai bit 15 pada format instruksi, disalinkan ke Accumulator. 0010 = Simpan isi accumulator ke memori, yang alamatnya dinyatakan pada bit 4 sampai bit 15. 0101 = Tambahkan isi AC dengan isi memori, yang alamatnya dinyatakan pada bit 4 sampai bit 15. memory Register CPU 300 1940 PC 300 301 5941 AC 0003 302 2941 IR 1940 ….. ….. 940 0003 941 0002 Register CPU PC 301 AC 0005 IR 5941 Proses 1 Proses 2 0002+0003 Register CPU PC 302 AC 0005 IR 2941 Proses 3