Dalam komputasi, sebuah proses adalah contoh dari sebuah program komputer yang sedang dieksekusi. Ini berisi kode program dan kegiatan saat ini. Tergantung pada sistem operasi (OS), proses yang dapat terdiri dari beberapa thread eksekusi yang mengeksekusi instruksi secara bersamaan . [1] [2]
Sebuah program komputer adalah kumpulan instruksi pasif; proses adalah pelaksanaan sebenarnya instruksi tersebut. Beberapa proses dapat dihubungkan dengan program yang sama, misalnya, membuka beberapa contoh program yang sama sering berarti lebih dari satu proses sedang dieksekusi.
Multitasking merupakan metode untuk memungkinkan beberapa proses untuk berbagi prosesor ( CPU ) dan sumber daya sistem lainnya. Setiap CPU mengeksekusi satu tugas pada satu waktu. Namun, multitasking memungkinkan setiap prosesor untuk beralih antara tugas yang sedang dijalankan tanpa harus menunggu untuk setiap tugas sampai akhir. Tergantung pada implementasi sistem operasi, switch dapat dilakukan ketika tugas melakukan input / output operasi, ketika tugas menunjukkan bahwa dapat diaktifkan, atau pada hardware interrupts .
Bentuk umum multitasking adalah time-sharing . Time-sharing adalah suatu metode untuk memungkinkan respon yang cepat untuk aplikasi pengguna interaktif. Dalam sistem time-sharing, switch konteks dilakukan dengan cepat. Hal ini membuatnya tampak seperti beberapa proses sedang dieksekusi secara bersamaan pada prosesor yang sama. Pelaksanaan beberapa proses secara bersamaan tampaknya disebut concurrency .
Untuk alasan keamanan dan kehandalan paling modern sistem operasi mencegah langsung komunikasi antara proses independen, menyediakan ketat dimediasi dan terkendali antar proses fungsi komunikasi.
Secara umum, proses sistem komputer terdiri dari (atau dikatakan 'sendiri') sumber daya berikut:
- Gambar dari eksekusi kode mesin yang terkait dengan program.
- Memori (biasanya beberapa wilayah virtual memory ); yang meliputi kode dieksekusi, proses-data spesifik (input dan output), sebuah panggilan stack (untuk melacak aktif subrutin dan / atau peristiwa lain), dan tumpukan untuk mengadakan perhitungan menengah data yang dihasilkan selama waktu berjalan.
- Operasi sistem deskriptor sumber daya yang dialokasikan untuk proses, seperti deskriptor file ( Unix terminologi) atau menangani ( Windows ), dan sumber data dan tenggelam.
- Keamanan atribut, seperti pemilik proses dan mengatur proses 'hak akses (operasi yang diijinkan).
- Processor negara ( konteks ), seperti isi register , memori fisik pengalamatan, dll Negara biasanya disimpan dalam register komputer ketika proses mengeksekusi, dan dalam memori sebaliknya. [1]
Sistem operasi memegang sebagian besar informasi tentang proses yang aktif dalam struktur data yang disebut blok kontrol proses
Setiap subset sumber daya, tetapi biasanya setidaknya negara prosesor, dapat berhubungan dengan masing-masing 'proses benang dalam sistem operasi yang mendukung benang atau 'putri' proses.
Sistem operasi membuat proses yang terpisah dan mengalokasikan sumber daya yang mereka butuhkan, sehingga mereka cenderung tidak mengganggu satu sama lain dan menyebabkan kegagalan sistem (misalnya, kebuntuan atau meronta-ronta ). Sistem operasi juga dapat menyediakan mekanisme untuk komunikasi antar proses untuk memungkinkan proses untuk berinteraksi dengan cara yang aman dan dapat diprediksi.
Sebuah multitasking * sistem operasi hanya dapat beralih antara proses untuk memberikan tampilan banyak proses eksekusi bersamaan atau secara simultan, meskipun sebenarnya hanya satu proses dapat mengeksekusi pada satu waktu pada single core CPU (kecuali menggunakan multi-threading atau serupa lainnya teknologi). [3]
Hal ini biasa untuk mengasosiasikan sebuah proses tunggal dengan program utama, dan 'putri' ('anak') proses dengan spin-off, proses paralel, yang berperilaku seperti asynchronous subrutin. Suatu proses dikatakan sumber daya sendiri, yang gambar program (dalam memori) adalah salah satu sumber daya tersebut. (Namun, perlu diketahui bahwa dalam sistem multiprocessing, banyak proses yang dapat berjalan off, atau saham, sama reentrant program di lokasi yang sama di memori-tapi setiap proses dikatakan untuk memiliki citra sendiri program.)
Proses ini sering disebut tugas-tugas dalam tertanam sistem operasi. Rasa 'proses' (atau tugas) adalah 'sesuatu yang memakan waktu', yang bertentangan dengan 'memori', yang adalah 'sesuatu yang menempati ruang'. (Secara historis, 'tugas' dan 'proses' yang digunakan bergantian, tetapi 'tugas' istilah tampaknya akan jatuh dari leksikon komputer.)
Gambaran di atas berlaku untuk kedua proses yang dikelola oleh sistem operasi, dan proses seperti yang didefinisikan oleh kalkuli proses .
Jika proses permintaan sesuatu yang harus menunggu, maka akan diblokir. Ketika proses ini di Negara Diblokir , sangat memenuhi syarat untuk swapping ke disk, tapi ini adalah transparan dalam memori virtual sistem, di mana nilai-nilai blok memori mungkin benar-benar pada disk dan bukan di memori utama setiap saat. Perhatikan bahwa bahkan bagian yang tidak digunakan proses yang aktif / tugas (mengeksekusi program) yang memenuhi syarat untuk swapping ke disk. Semua bagian dari program menjalankan dan data perusahaan tidak harus berada di memori fisik untuk proses terkait untuk aktif.
______________________________
* Tugas dan proses merujuk pada dasarnya untuk entitas yang sama. Dan, meskipun mereka memiliki terminologi sejarah yang agak berbeda, mereka telah datang untuk digunakan sebagai sinonim. Saat ini, proses Istilah lebih dipilih daripada tugas, kecuali jika mengacu pada 'multitasking', karena istilah alternatif, 'multiprocessing', terlalu mudah untuk bingung dengan multiprosesor (yang merupakan komputer dengan dua atau lebih CPU).
Ketika proses berkomunikasi satu sama lain itu disebut "Inter-proses komunikasi" (IPC). Proses sering perlu untuk berkomunikasi, misalnya dalam pipa shell, output dari proses pertama harus lulus dengan yang kedua, dan seterusnya untuk proses lainnya. Hal ini lebih suka dengan cara yang terstruktur dengan baik tidak menggunakan interupsi.
Hal ini bahkan mungkin untuk dua proses yang akan berjalan pada mesin yang berbeda. Sistem operasi (OS) mungkin berbeda dari satu proses ke yang lain, karena itu beberapa mediator (s) (disebut protokol ) yang diperlukan.
Dengan perangkat lunak komputer kontrol awal 60-an telah berkembang dari perangkat lunak kontrol monitor , misalnya, IBSYS , untuk perangkat lunak kontrol Eksekutif . Komputer mendapat "lebih cepat" dan waktu komputer masih tidak "murah" juga digunakan seluruhnya. Hal itu membuat multiprogramming mungkin dan diperlukan.
Multiprogramming berarti bahwa beberapa program dijalankan "pada saat yang sama" ( secara bersamaan , termasuk paralel dan non-paralel). Pada awalnya mereka berlari pada prosesor tunggal (yaitu, uniprocessor ) dan sumber daya yang langka bersama. Multiprogramming adalah juga bentuk dasar multiprocessing , istilah yang lebih luas.
Program terdiri dari urutan instruksi untuk prosesor. Sebuah prosesor tunggal dapat menjalankan hanya satu instruksi pada satu waktu. Oleh karena itu tidak mungkin untuk menjalankan lebih banyak program pada saat yang sama. Suatu program mungkin perlu beberapa sumber daya (input ...) yang memiliki "besar" penundaan. Suatu program bisa juga dimulai beberapa operasi lambat (output ke printer ...). Ini semua menyebabkan prosesor menjadi "idle" (tidak digunakan). Untuk menggunakan prosesor sama sekali waktu pelaksanaan program tersebut dihentikan. Pada saat itu, sebuah program (atau n th) kedua dimulai atau restart. Pengguna merasa bahwa program yang dijalankan "pada saat yang sama" (maka istilah, bersamaan).
Tak lama kemudian, gagasan tentang 'program' diperluas dengan gagasan tentang 'program pelaksana dan konteksnya' an. Konsep proses lahir.
Hal ini menjadi penting dengan penemuan kembali kode peserta .
Thread datang agak belakangan. Namun, dengan munculnya time-sharing , jaringan komputer , beberapa CPU, memori bersama komputer, dll, lama "multiprogramming" memberi jalan ke true multitasking multiprocessing, dan, kemudian, multithreading .
0 comments:
Post a Comment