Apa yang menyebabkan sebuah proses yang sedang berjalan menjadi status time out

https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-3807041537198238

PROSES

I. Deskripsi Proses

Istilah lain untuk proses adalah Task. Proses adalah program yang sedang dieksekusi. Secara fisik proses berisi instruksi dan data, program counter, semua nilai register pemroses, serta stack yang berisi data yang bersifat sementara (temporer) seperti data parameter-parameter rutin, alamat kirim dan variabel-variabel lokal.

Beberapa istilah penting berkaitan dengan proses, antara lain :

  • Multiprogramming (Multitasking)

Manajemen banyak proses di satu pemroses. Contoh sistem pemroses tuggal yang menjalankan sistem operasi multiprogramming. Ex : MS-Windows 98, MS-Windows NT, MS-Windows XP, OS/2 dan Macintosh System 7. Pada multiprogramming, pemakai memandang terdapat banyak proses dijalankan bersamaan pada satu saat. Masing2 proses mendapat bagian memori dan kendali sendiri. SO mengalihkan layanan pemroses diantara proses-proses tsb.

Proses yang dijalankan pada sistem multiprogramming sebenarnya bersifat sbb :

    • Saling tidak bergantung (independent), proses sebagai terpisah dari lainnya dan tidak saling mempengaruhi.
    • Satu program pada satu saat (one program at any instant)

Pada satu saat sesungguhnya hanya satu proses yang dilayani pemroses, menggunakan interleave (saling melanjutkan/ bersambung) , bukan overlap diantara program-program.
Pemroses mengeksekusi satu proses tiap saat dan secara cepat beralih ke proses-proses lain secara bergiliran. Karena pengalihan dilakukan secara sangat cepat maka pengalihan tsb tidak disadari oleh pemakai sehingga menimbulkan efek paralel semu (pseudoparalelelism).

Manajemen banyak proses di komputer multiprosesor (banyak pemroses didalamnya). Dulunya multiprocessor hanya terdapat di sistem besar yaitu sistem mainframe dan minikomputer. Sekarang komputer workstation pun telah dapat dilengkapi multiprocessor yang dimaksudkan untuk peningkatan kinerja dan dapat memberikan kemampuan fault tolerant.

Satu komputer dengan banyak pemroses dengan masing-masing pemroses melakukan pengolahan secara independen.
Sistem operasi Microsoft Windows NT, UNIX, Linux telah menyediakan dukungan multiprocessing.

  • Distributed processing/computing

Distributed processing adalah manajemen banyak proses yang dieksekusi di banyak sistem komputer tersebar (terdistribusi) di satu jaringan. Pada sistem operasi tersebar yang ideal, pemrogram tidak perlu menyadari keberadaan banyak pemroses. Kecenderungan masa datang adalah menuju komputasi tersebar (distributed computing)_. Banyak riset dan pengembangan sistem operasi tersebar, diantaranya AMOEBA, MACH dsb.

Kebutuhan utama pengendalian proses oleh sistem operasi dapat dinyatakan dengan mengacu ke proses, yaitu :

  1. Interleave (saling melanjutkan), SO harus melakukan interleave eksekusi proses-proses untuk memaksimumkan penggunaan pemroses sambil masih memberi waktu tanggap (respons time) yang memadai.
  2. Mengikuti kebijakan tertentu, SO harus mengalokasikan sumberdaya- sumberdaya ke proses-proses mengikuti kebijaksanaan yang ditentukan (misalnya fungsi atau aplikasi tertentu mempunyai prioritas lebih tinggi) sambil menghindari deadlock.
  3. Mendukung komunikasi antarproses dan penciptaan proses, SO perlu mendukung komunikasi antarproses dan penciptaan proses oleh pemakai sehingga membantu menstrukturkan aplikasi.

Pada sistem dengan banyak proses aktif, proses-proses pada satu saat berada di beragam tahap eksekusinya. Proses mengalami beragam state selama siklus hidupnya. Sistem operasi harus dapat mengetahui state masing-masing proses yang ada di sistem dan merekam semua perubahan yang terjadi.

II. Diagram State Proses

Proses melewati serangkaian state diskrit. Beragam kejadian dapat menyebabkan perubahan/berpindahnya state proses.

Diagram State Dasar

Apa yang menyebabkan sebuah proses yang sedang berjalan menjadi status time out

Apa yang menyebabkan sebuah proses yang sedang berjalan menjadi status time out

Proses dapat berada di salah satu dari tiga state dasar. tabel berikut mendaftarkan state-state dasar yang dialami proses : Status Deskripsi

Running Pemroses sedang mengeksekusi instruksi TProses itu


Ready Proses siap(Ready) dieksekusi tapi pemroses tidak mengeksekusi proses ini
Blocked Proses menuggu kejadian tertentu selesai. Contoh :
    • Selesainya operasi perangkat masukan/keluaran
    • Tersedianya memori
    • Tibanya pesan jawaban dsb

Transisi state-state selama siklus hidup proses :

    • Proses yang baru diciptakan akan segera mempunyai state Ready
    • Proses dengan state Running menjadi Blocked karena sumber daya yang diminta belum tersedia atau meminta layanan perangkat masukan/ keluaran sehingga menunggu kejadian muncul. Proses menunggu kejadian alokasi sumberdaya atau selesainya layanan perangkat masukan/keluaran (event wait)
    • Proses dengan state Running menjadi Ready karena penjadwalan memutuskan agar pemroses melakukan eksekusi proses yang lain karena jatah waktu untuk proses itu telah habis (time-out)
    • Proses dengan state Blocked menjadi Ready saat sumberdaya yang diminta/diperlukan telah tersedia atau layanan perangkat masukan /keluaran selesai (event occurs).
    • Proses dengan state Ready menjadi Running karena penjadwal memutuskan penggunaan pemroses untuk proses itu karena proses saat itu Running berubah state (menjadi Ready atau Blocked) atau telah menyelesaikan sehingga disingkirkan dari sistem. Proses menjadi mendapatkan jatah pemroses.

Process Control Block (PCB)
SO memerlukan banyak informasi mengenai proses untuk dapat melakukan pengelolaan proses secara benar. Informasi ini berada di struktur data PCB. Struktur Data PCB menyimpan informasi yang lengkap mengenai proses sehingga SO dapat mengelola seluruh siklus hidup semua proses di sistem. SO berbeda mengorganisasikan struktur PCB secara berbeda.

Informasi pada PCB dapat dikelompokkan menjadi 3 kelompok, yaitu :

  1. Informasi Identifikasi Proses, identifikasi proses adalah informasi-informasi yang berkaitan dengan identitas proses yang unik. Dengan identifier ini proses dikaitkan ke tabel-tabel lain.
  2. Informasi status Pemroses, informasi status pemroses berisi informasi yang esensinya merupakan nilai/isi dari register-register pemroses. Saat proses berstatus Running, informasi-informasi ini berada di register-register. Ketika proses diinterupsi, semua informasi register harus disimpan agar dapat dikembalikan saat proses dieksekusi kembali. jumlah dan ragam register yang terlibat tergantung arsitektur komputer.
  3. Informasi Kendali proses, informasi-informasi lain yang diperlukan sistem operasi untuk mengendalikan dan koordinasi beragam proses aktif.

SO dapat melakukan operasi-operasi terhadap proses. Operasi-operasi yang dapat dilakukan terhadap proses diantaranya :

  • Penciptaan proses (create a process)
  • Penghancuran /terminasi proses (destroy a process)
  • Penundaan proses(suspend a process)
  • Pelanjutan kembali proses (resume a process)
  • Pengubahan prioritas proses
  • Mem block proses
  • Membangunkan proses
  • Menjadwalkan proses
  • Memungkinkan proses berkomunikasi dengan proses lain

Diagram State Lanjut (Lima Keadaan)
Dua state baru dimasukkan sehingga membentuk diagram 5 state, yaitu :

    1. SuspendedReady
    2. SuspendedBlocked

Operasi suspend dan resume penting karena :

  1. Jika sistem berfungsi/berkinerja buruk dan berpeluang gagal maka dengan keberadaan operasi suspend, proses-proses yang kurang penting dapat di suspend agar kinerja sistem meningkat. Contoh : pada proses pencetakan, bila tiba-tiba kertas habis maka proses di- suspend. Setelah kertas dimasukkan kembali, proses pun dapat di resume.
  2. Pemakai yang ragu/khawatir mengenai hasil suatu proses dapat men suspend proses (bukan langsung membuang proses)
  3. Sebagai tanggapan terhadap fluktuasi jangka pendek beban sistem, beberapa proses dapat di suspend dan di resume saat beban kembali ketingkat normal.

III. IMPLEMENTASI PROSES

Tabel-tabel untuk proses
Masing-masing proses memiliki state yang perlu diperhatikan oleh sistem operasi. SO mencatat state proses dengan beragam tabel atau senarai, antara lain :

  1. Tabel informasi manajemen memori
  2. Tabel informasi manajemen masukan/keluaran
  3. Tabel informasi sistem file
  4. Tabel proses

Keempat tabel tersebut saling berhubungan.

  • Tabel informasi manajemen memori, untuk menjaga keutuhan memori utama dan memori sekunder. Tabel ini memuat informasi berikut :
    1. Alokasi memori utama yang dipakai proses
    2. Alokasi memori sekunder yang dipakai proses (bila menggunakan manajemen memori dengan swapping)
    3. Atribut segmen memori utama dan sekunder
    4. Informasi-informasi lain yang digunakan untuk pengelolaan memori
  • Tabel informasi manajemen masukan/ keluaran, untuk mengelola perangkat masukan/keluaran. Pada satu saat perangkat masukan/keluaran digunakan proses tertentu. Dengan demikian perlu dijaga agar proses lain tidak memakainya. Sistem operasi perlu mengetahui status operasi masukan/keluaran dan lokasi memori utama yang digunakan untuk transfer data.
  • Tabel Informasi Sistem File, berisi informasi mengenai ekstensi file, lokasi pada memori sekunder, status saat itu dan menyimpan atribut-atribut file lainnya
  • Tabel Proses, mengelola informasi proses di sistem operasi, lokasinya di memori, berisi status dan atribut-atribut proses yang lain.

Proses ditempatkan di memori utama di lokasi tertentu, proses mempunyai satu ruang alamat tersendiri. Ruang alamat yang digunakan proses disebut citra proses (process image) karena selain seluruh kode biner program, proses ditambahi atribut-atribut lain berkaitan penempatannya pada lokasi memori dan status eksekusi pada saat itu.

Tabel berikut menunjukkan isi dari citra proses : Elemen Citra Proses Deskripsi

Data Pemakai Bagian yang dapat dimodifikasi berupa data program, daerah stack pemakai

Program Pemakai Program biner yang akan dieksekusi Stack Sistem Digunakan untuk menyimpan parameter dan alamat pemanggilan untuk prosedur dan system calls

PCB (Program Control Block) Berisi informasi-informasi yang diperlukan oleh sistem operasi dalam mengendalikan proses.

PCB DAN SENARAI PROSES
PCB berperan penting pada Sistem Operasi, yang berisi informasi mengenai proses yang diperlukan Sistem Operasi. PCB dibaca dan atau dimodifikasi rutin sistem operasi seperti penjadwalan, alokasi sumber daya, pemrosesan interupsi, monitoring dan analisis kinerja.

Pengaksesan Informasi di PCB
Rutin-rutin SO perlu mengakses informasi di PCB. Tiap proses dilengkapi ID unik yang digunakan sebagai indeks (penunjuk) ke tabel untuk mengambil PCB. Kesulitan bukan pada mekanisme pengaksesan, tapi masalah proteksi terhadap PCB. Dua masalah utama proteksi terhadap PCB, yaitu :

  1. Bug (kesalahan pemrograman) sesuatu yang dapat merusak PCB dapat berakibat menghancurkan kemampuan sistem mengelola proses-proses yang diasosiasikan dengan PCB
  2. Perubahan rancangan struktur PCB dapat berdampak ke sejumlah modul sistem operasi yang memakai PCB

Kedua masalah tsb memberi gagasan agar semua rutin sistem operasi melewati rutin penanganan PCB dalam mengakses PCB. Tugas rutin memproteksi PCB dan menjadi perantara pembacaan dan penulisan PCB .

  • Masalah pertama dapat dicegah karena rutin penanganan PCB akan selalu menjaga agar PCB tidak rusak
  • Masalah kedua jelas langsung teratasi karena antarmuka terhadap rutin-rutin lain masih tetap dipertahankan walau rincian-rincian PCB diubah.

Penciptaan proses dapat disebabkan beragam sebab, dan meliputi beberapa tahap.
Tahap-tahap penciptaan proses sbb [STA-95] :

  1. Diberikan satu identifier unik ke proses baru. Isian baru ditambahkan ke tabel proses utama yang berisi satu isian per proses.
  2. Dialokasikan ruang untuk proses.
  3. PCB harus diinisalisasi
  4. Kaitan-kaitan antartabel dan senarai yang cocok dibuat
  5. Apabila diperlukan struktur data lain maka segera dibuat struktur data itu.

Pengalihan Proses (Process switching)
Pada suatu saat, proses running diinterupsi dan sistem operasi memberi proses lain state running dan menggilir kendali ke proses itu. Dalam hal ini muncul beberapa masalah, yaitu :

  1. Apa kejadian-kejadian yang memicu alih proses
  2. Masalah lain adalah terdapatnya perbedaan antara alih proses (process switching) dan alih konteks (context switching)
  3. Apa yang harus dilakukan sistem operasi terhadap beragam struktur data yang dibawah kendalinya dalam alih proses?

Kejadian-kejadian penyebab pengalihan proses

  1.  Interupsi sistem
  2. Trap
  3. Supervisor call

Interupsi Sistem Adalah suatu permintaan khusus pada microprocessor untuk melakukan sesuatu, jika terjadi interupsi maka computer akan menghentikan dahulu apa yang sedang dikerjakan dan melakukan apa yang diminta oleh yang menginterupsi.

Interupsi sistem disebabkan kejadian eksternal dan tidak bergantung proses saat itu sedang dalam state running. Contoh : selesainya operasi masukan/keluaran.

Pada kejadian interupsi, kendali lebih dulu ditransfer ke interrupt handler yang melakukan penyimpanan data dan kemudian beralih ke rutin sistem operasi yang berkaitan dengan tipe interupsi itu.

Tipe-tipe interupsi :

  1. Interupsi clock (clock interrupt), sistem operasi (penjadwal) menentukan apakah proses yang sedang running telah dieksekusi selama jatah waktunya. Jika telah mencapai jatahnya maka proses dialihkan ke state ready dan proses lain dijadwalkan untuk running.
  2. Interupsi masukan/keluaran(I/O interrupt), kejadian dimana peralatan masukan/keluaran melakukan interupsi meminta layanan sistem operasi. Sistem operasi segera menentukan aksi-aksi masukan/ keluaran yang harus dilakukan.
  3. Page/memory fault, pemroses menemui pengacuan alamat memori maya yang tidak terdapat di memori utama(fisik). Sistem operasi segera memerintahkan untuk mengambil page yang terdapat alamat yang dimaksud untuk dipindah ke memori utama.

Trap
Trap adalah interupsi karena terjadinya kesalahan atau kondisi kekecualian (exception conditions) yang dihasilkan proses yang Running, seperti usaha ilegal dalam mengakses file.
Dengan adanya trap, sistem operasi menentukan apakah kesalahan yang dibuat merupakan kesalahan fatal?

  1. Jika merupakan kesalahan fatal, proses yang saat itu running disingkirkan dan terjadi alih proses
  2. Jika merupakan kesalahan yang tidak fatal maka bergantung sifat kesalahan dan rancangan sistem operasi. Kemungkinan yang dilakukan adalah menjalankan prosedur pemulihan atau memperingatkan pemakai.

Saat terjadi trap, mungkin terjadi pengalihan proses mungkin pula resume terhadap proses.

Supervisor Call
Supervisor call yaitu panggilan meminta atau menggaktifkan bagian sistem operasi.
Contoh : proses pemakai running meminta layanan masukan/keluaran seperti membuka file. Panggilan ini menghasilkan transfer ke rutin bagian sistem operasi. Biasanya menggunakan system call membuat proses pemakai blocked karena diaktifkannya proses kernel (sistem operasi).

Pengalihan proses dan pengalihan konteks

  • Pengalihan proses, terjadi jika proses running beralih menjadi state lain (Ready, Blocked dsb), kemudian sistem operasi harus membuat perubahan-perubahan berarti terhadap lingkungannya

Langkah-langkah yang terlibat dalam pengalihan proses sbb [STA 95]

  1. Simpan konteks pemroses, termasuk register PC dan register-register lain
  2. Perbarui PCB proses yang running. Pelaksanaannya termasuk mengubah state proses menjadi salah satu state (ready, blocked, suspendedready dsb). Field-field yang relevan juga diperbarui misalnya alasan meninggalkan state running dan informasi akunting
  3. Pindahkan PCB proses ke senarai yang cocok (ready, blocked dsb)
  4. Pilih satu proses lain untuk dieksekusi sesuai teknik penjadwalan
  5. Perbarui PCB proses yang dipilih termasuk perubahan state menjadi running
  6. Perbarui struktur-struktur data manajemen memori. Pekerjaan ini sesuai dengan pengelolaan translasi alamat
  7. Kembalikan konteks pemroses dengan konteks simpanan yang memberitahu konteks proses terakhir saat dialihkan dari state running. Pengembalian konteks ini dilakukan dengan memuatkan nilai-nilai register PC dan register-register lain dengan nilai konteks yang tersimpan.

Pengalihan proses melibatkan pengalihan konteks dan perubahan state, memerlukan usaha yang lebih besar daripada pegalihan konteks.

  • Pengalihan konteks, dapat terjadi tanpa pengalihan state proses yang sedang running, sedang pengalihan proses pasti melibatkan juga pengalihan konteks.

Siklus penganganan interupsi adalah

  1. Pemroses menyimpan konteks program saat itu yang sedang dieksekusi ke stack
  2. Pemroses mengeset register PC dengan alamat awal program untuk interrupt handler.

Setelah kedua aktivitas itu, pemroses melanjutkan menjalankan instruksi-instruksi berikutnya di interrupt handler yang melayani interupsi. Pelaksanaan interupsi ini belum tentu mengakibatkan pengalihan ke proses lain (yaitu pengalihan PCB proses dari senarai running ke senarai lain (blocked, ready dsb) dan sebaliknya. Kita menyebut pengalihan konteks adalah untuk pengalihan sementara yang dilakukan dengan singkat, misalnya untuk mengeksekusi interrupt handler.

Setelah selesai penganganan interupsi maka konteks yang terdapat pada stack dikembalikan sehingga kembali ke konteks proses semula tanpa terjadi pengalihan ke proses lain.

Sistem operasi sebenarnya sama seperti perangkat lunak yang lain, yaitu program perlu dieksekusi pemroses.

Kedudukan sistem operasi dibanding proses-proses lain dapat beraneka ragam, antara lain:

  • Sistem operasi sebagai kernel tersediri yang berbeda dengan proses-proses lain (kernel sebagai non proses)
  • Fungsi-fungsi sistem operasi dibanding proses-proses lain dapat beraneka ragam antara lain:
    • Sistem operasi juga sebagai kumpulan proses (process-based operating system)
    • Kernel sebagai Nonproses

Kernel sistem operasi adalah diluar proses, digambarkan sbb :

Ketika proses running diinterupsi , maka konteks pemroses disimpan melalui kernel. Sistem operasi mempunyai daerah memori dan stack sendiri untuk pemanggilan prosedur didalamnya. Sistem operasi melakukan fungsi yang diinginkan proses pemakai dan mengembalikan konteks proses yang diinterupsi. Eksekusi proses pemakai yang diinterupsi dilanjutkan kembali.
Alternatif lain, sistem operasi menyimpan lingkungan proses, melakukan penjadwalan dan menjadwalkan proses lain.

Konsep proses hanya diterapkan untuk program-program pemakai, tidak berlaku bagi sistem operasi. Kode sistem operasi dieksekusi sebagai satu entitas yang terpisah, beroperasi pada mode kernel. Proses adalah non-kernel, sedangkan sistem operasi adalah kernel, bukan proses. Dieksekusi dalam proses pemakai

Alternatif lain eksekusi sistem operasi adalah mengeksekusi sistem operasi di konteks proses pemakai. Pendekatan ini didasarkan terutama pada pandangan bahwa sistem operasi sebagai kumpulan rutin yang dipanggil pemakai untuk melakukan beragam fungsi dan dieksekusi dalam lingkungan proses pemakai.

Pada seluruh waktu, sistem operasi mengelola N citra proses. Tiap citra tidak hanya mempunyai daerah untuk proses tapi juga daerah program, data dan stack untuk kernel. Terdapat juga ruang alamat yang dipakai bersama semua program proses.
Ketika diinterupsi, trap atau supervisor call terjadi, pemroses ditempatkan ke mode kernal dan kendali dilewatkan ke sistem operasi. Konteks pemroses disimpan dan alih konteks ke rutin sistem operasi. Eksekusi dilanjutkan dalam proses pemakai saat itu, tidak dilakukan alih proses, hanya alih konteks di proses yang sama.

Jika sistem operasi telah menyelesaikan tugas, menentukan apakah proses berlanjut, maka alih konteks me-resume program yang diinterupsi dalam proses itu juga. Keunggulan pendekatan ini adalah program pemakai yang diinterupsi untuk memperoleh rutin sistem operasi dan di resume tidak mengalami overhead peralihan dua proses.
Jika sistem operasi menentukan bahwa alih proses terjadi bukan kembali ke proses semula yang dieksekusi, maka kendali dilewatkan ke rutin alih proses. Rutin ini boleh dijalankan pada proses boleh juga tidak, bergantung rancangan sistem. Pada keadaan ini, proses itu menjadi state non-running dan proses lain menjadi running.

Sistem Operasi Sebagai Kumpulan Proses Pendekatan ini mengimplementasikan sistem operasi sebagai kumpulan proses. Perangkat lunak bagian kernel dieksekusi dalam mode kernel.

Pendekatan ini digambarkan sbb :

Fungsi-fungsi kernel utama diorganisasi sebagai proses-proses terpisah. Terdapat kode kecil pengalihan proses yang dieksekusi diluar proses.
Pendekatan ini memiliki beberapa keunggulan, yaitu :

  • Perancangan modular dapat diterapkan ke perancangan sistem operasi. Sistem operasi menjadi modul-modul dengan interface yang bersih dan minimal antarmodul-modul itu.
  • Fungsi-fungsi sistem operasi tak kritis secara bagus dapat diimplementasikan sebagai proses-proses terpisah
  • Mudah diterapkan pada lingkungan multiprocessor atau multicomputer dalam hal ini beberapa layanan sistem operasi disimpan di pemroses-pemroses tertentu. Teknik ini akan meningkatkan kinerja.

Mikrokernel

Mikrokernel adalah inti sistem operasi yang menyediakan landasan perluasan sistem operasi. Pendakatan mikrokernel dipopulerkan sistem operasi Mach. Secara teoritis, pendekatan mikrokernel menyediakan derajat fleksibilitas dan modular tinggi. Sistem operasi yang memakai pendekatan mikrokernel adalah MS Windows NT.

Landasan pendekatan mikrokernel adalah hanya fungsi-fungsi sistem operasi inti yang secara mutlak esensi yang harus berada di kernel. Layanan-layanan dan aplikasi-aplikasi yang kurang esensi dibangun di atas mikrokernel itu. Meskipun pembagian antara mana yang perlu dan tidak, mikrokernel beragam. Terdapat ciri yang sama yaitu banyak layanan yang secara tradisional merupakan bagian sistem operasi menjadi subsistem eksternal. Subsistem ini berinteraksi dengan kernel dan subsistem-subsistem lain. Layanan-layanan itu antara lain sistem file, sistem windowing dan layanan-layanan keamanan. Komponen-komponen sistem operasi diluar mikrokernel saling berinteraksi melalui pesan yang dilewatkan melalui mikrokernel. Fungsi mikrokernel adalah sebagai mediator pertukaran pesan. Mikrokernel memvalidasi pesan, melewatkan pesan antara komponen-komponen dan memberi hak pengaksesan perangkat keras.

Struktur ini ideal untuk lingkungan pemrosesan terdistribusi karena mikrokernel dapat melewatkan pesan baik secara lokal atau jarak jauh tanpa perubahan komponen-komponen sistem operasi yang lain.