System Call

download System Call

of 12

Transcript of System Call

Sistem Panggilan Sistem panggilan menyediakan antarmuka dengan layanan yang disediakan oleh sebuah operasi sistem. Panggilan ini umumnya tersedia sebagai rutinitas ditulis dalam C dan C + +, meskipun beberapa tingkat rendah tugas (misalnya, tugas di mana perangkat keras harus diakses secara langsung), mungkin perlu ditulis menggunakan bahasa assembly instruksi. Sebelum kita membahas bagaimana sebuah sistem operasi membuat panggilan sistem yang tersedia, pertama mari kita menggunakan contoh untuk menggambarkan bagaimana sistem panggilan yang digunakan: menulis program sederhana untuk membaca data dari satu file dan menyalinnya ke file lain. Itu masukan pertama bahwa program ini akan butuhkan adalah nama dua file: file input dan file output. Nama-nama ini dapat ditentukan dalam banyak cara, tergantung pada desain sistem operasi. Satu pendekatan adalah untuk program untuk meminta pengguna untuk nama kedua file. Dalam sebuah sistem interaktif, pendekatan ini akan memerlukan urutan panggilan sistem, pertama untuk menulis pesan yang mendorong pada layar dan kemudian membaca dari keyboard karakter yang mendefinisikan dua file. Pada mouse berbasis ikon dan sistem berbasis menu yang nama file biasanya ditampilkan pada sebuah window. Pengguna kemudian dapat menggunakan mouse untuk memilih sumber nama, dan jendela dapat dibuka untuk nama tujuan akan ditentukan. Urutan ini membutuhkan banyak I / O system calls. Setelah dua nama file yang diperoleh, program ini harus membuka file input dan membuat file output. Masing-masing membutuhkan operasi lain system call. Ada juga kondisi kesalahan yang mungkin untuk setiap operasi. Ketika program mencoba untuk membuka file input, mungkin menemukan bahwa tidak ada file dengan nama tersebut atau yang 44 Bab 2 Sistem Operasi file yang dilindungi terhadap akses. Dalam kasus ini, program harus mencetak pesan pada konsol (lain urutan panggilan sistem) dan kemudian mengakhiri normal (lain system call). Jika file input ada, maka kita harus membuat baru file output. Kita mungkin menemukan bahwa sudah ada file output dengan sama nama. Situasi ini dapat menyebabkan program untuk batalkan (system call), atau kita dapat menghapus file yang ada (panggilan lain sistem) dan membuat yang baru (lain system call). Pilihan lain, dalam sebuah sistem interaktif, adalah untuk meminta pengguna (melalui urutan sistem panggilan untuk output pesan dan mendorong untuk membaca respon dari terminal) apakah akan mengganti file yang ada atau untuk membatalkan program. Sekarang kedua file sudah selesai, kita memasuki sebuah loop yang membaca dari input file (system call) dan menulis ke file output (lain system call). Setiap membaca dan menulis harus kembali informasi status mengenai berbagai kemungkinan kesalahan

kondisi. Pada masukan, program dapat menemukan bahwa akhir file telah mencapai atau bahwa ada kegagalan hardware dalam membaca (seperti kesalahan paritas). Menulis operasi mungkin menghadapi berbagai kesalahan, tergantung pada output perangkat (tidak lebih ruang disk, printer kehabisan kertas, dan sebagainya). Akhirnya, setelah seluruh file disalin, program ini mungkin akan menutup kedua file (Panggilan lain sistem), menulis pesan ke konsol atau jendela (lebih sistem panggilan), dan akhirnya mengakhiri normal (system call akhir). Seperti kita lihat, bahkan program sederhana mungkin menggunakan berat sistem operasi. Sering, sistem mengeksekusi ribuan system calls per detik. Systemcall ini urutan ditunjukkan pada Gambar 2.1. Kebanyakan programmer tidak pernah melihat tingkat detail, namun. Biasanya, aplikasi pengembang desain program menurut sebuah pemrograman aplikasi antarmuka (API). API menetapkan satu set fungsi yang tersedia ke aplikasi programmer, termasuk parameter yang dilewatkan ke masing-masing

fungsi dan kembali menghargai programmer dapat harapkan. Tiga yang paling API yang umum tersedia untuk programmer aplikasi adalah Win32 API untuk Sistem Windows, API POSIX untuk sistem berbasis POSIX (yang mencakup hampir semua versi dari UNIX, Linux, dan Mac os X), dan Java API untuk merancang program yang berjalan pada mesin virtual Java. Perhatikan bahwa sistem-nama panggilan digunakan dalam buku ini adalah generik contoh. Setiap sistem operasi memiliki nama sendiri untuk setiap system call. Di belakang layar, fungsi yang membentuk sebuah API biasanya memanggil sistem aktual menyerukan nama pemrogram aplikasi. Sebagai contoh, fungsi Win32 CreateProcessO (yang tidak mengejutkan digunakan untuk membuat proses baru) benar-benar panggilan panggilan NTCreateProcessO sistem di Windows kernel. Mengapa aplikasi pemrogram lebih suka pemrograman sesuai

untuk API daripada memanggil panggilan sistem yang sebenarnya? Ada beberapa alasan keperawatan melakukannya. Satu keuntungan dari program sesuai dengan program kekhawatiran API portabilitas: Sebuah pemrogram aplikasi merancang sebuah program menggunakan API dapat mengharapkan programnya untuk mengkompilasi dan berjalan pada sistem yang mendukung sama API (meskipun pada kenyataannya, perbedaan arsitektur sering membuat ini lebih sulit daripada mungkin muncul). Selanjutnya, sistem panggilan yang sebenarnya sering dapat lebih rinci 46 Bab 2 Sistem Operasi dan sulit untuk bekerja dengan dari API yang tersedia untuk programmer aplikasi. Apapun, ada sering ada korelasi kuat antara invoking fungsi dalam API dan terkait sistem panggilan dalam kernel. Bahkan, banyak POSIX dan Win32 API serupa dengan panggilan sistem asli yang disediakan oleh UNIX, Linux, dan sistem operasi Windows. Run-time sistem pendukung (satu set fungsi yang dibangun ke dalam perpustakaan termasuk dengan kompilator) untuk bahasa pemrograman yang paling menyediakan sistempanggilan antarmuka yang berfungsi sebagai link ke panggilan sistem yang disediakan oleh operasi sistem. Sistem-panggilan antarmuka penyadapan fungsi panggilan dalam API dan memanggil system call yang diperlukan dalam sistem operasi. Biasanya, jumlah dikaitkan dengan setiap panggilan sistem, dan sistem antarmuka-panggilan memelihara sebuah tabel diindeks menurut angka-angka. Antarmuka sistem panggilan kemudian memanggil system call dimaksud dalam kernel sistem operasi dan mengembalikan status dari system call dan setiap nilai kembali. Penelepon perlu tahu apa-apa tentang bagaimana system call diimplementasikan atau apa yang dilakukannya selama eksekusi. Sebaliknya, itu hanya perlu mematuhi API dan memahami apa sistem operasi akan lakukan sebagai hasil dari pelaksanaan bahwa system call. Dengan demikian, sebagian besar rincian dari antarmuka sistem operasi tersembunyi dari programmer dengan API dan dikelola pada saat runmendukung perpustakaan. Hubungan antara API, interface sistem panggilan, dan sistem operasi ditunjukkan pada Gambar 2.3, yang menggambarkan bagaimana sistem operasi menangani aplikasi pengguna memanggil system call openO. Panggilan sistem terjadi dengan cara yang berbeda, tergantung pada komputer yang digunakan. Seringkali, lebih banyak informasi yang diperlukan dari sekedar identitas yang diinginkan sistem panggilan. Dengan tepat jenis dan jumlah informasi yang bervariasi sesuai dengan sistem operasi tertentu dan panggilan. Misalnya, untuk mendapatkan masukan, kita

mungkin perlu untuk menentukan file atau perangkat untuk digunakan sebagai sumber, serta alamat dan

panjang buffer memori yang input harus dibaca. Tentu saja, perangkat atau file dan panjang mungkin tersirat dalam panggilan. Tiga metode umum yang digunakan untuk melewatkan parameter ke sistem operasi. Pendekatan paling sederhana adalah untuk melewati parameter dalam register. Dalam beberapa kasus, Namun, mungkin ada parameter lebih dari register. Dalam kasus ini, parameter umumnya disimpan dalam blok atau tabel pada memori, dan alamat blok dilewatkan sebagai parameter dalam register (Gambar 2.4). Ini adalah Pendekatan yang diambil oleh Linux dan Solaris. Parameter juga dapat ditempatkan, atau mendorong, ke stack oleh program dan muncul dari tumpukan oleh sistem operasi. Beberapa sistem operasi lebih memilih blok atau metode stack, karena mereka pendekatan tidak membatasi jumlah atau panjang parameter yang berlalu. 2,4 Jenis Panggilan Sistem Panggilan sistem dapat dikelompokkan secara kasar ke dalam lima kategori utama: proses kontrol, file manipulasi, manipulasi perangkat, pemeliharaan informasi,

dan komunikasi. Dalam Bagian 2.4.1 melalui 2.4.5, kita membahas secara singkat jenis panggilan sistem yang dapat diberikan oleh sebuah sistem operasi. Sebagian besar sistem ini menyebut dukungan, atau didukung oleh, konsep dan fungsi yang dibahas di bab berikutnya. Gambar 2.5 meringkas jenis-jenis sistem panggilan biasanya disediakan oleh sebuah sistem operasi. 2.4.1 Proses Pengendalian Sebuah program yang berjalan harus mampu untuk menghentikan pelaksanaannya baik normal (akhir) atau tidak normal (abort). Jika system call dibuat untuk mengakhiri saat ini rUlli1ing Program abnormal, atau jika program ini berjalan ke dalam masalah dan menyebabkan perangkap kesalahan, sebuah dump dari memori kadang-kadang diambil dan kesalahan pesan yang dihasilkan. Dump ditulis ke disk dan dapat diperiksa oleh debugger-program sistem yang dirancang untuk membantu programmer dalam mencari dan memperbaiki bug-untuk menentukan penyebab dari masalah. Di bawah baik yang normal atau keadaan normal, sistem operasi harus mentransfer kontrol ke 48 Bab 2 Sistem Operasi Proses kontrol o akhir, batalkan o beban, jalankan o membuat proses, menghentikan proses o mendapatkan atribut proses, mengatur atribut proses o menunggu waktu o menunggu acara, acara sinyal o mengalokasikan dan mengosongkan memori Manajemen file o membuat file, menghapus file o membuka, menutup o membaca, menulis, reposisi o mendapatkan atribut file, set atribut file Manajemen perangkat o permintaan perangkat, perangkat rilis o membaca, menulis, reposisi o mendapatkan atribut perangkat, mengatur atribut perangkat o logis melampirkan atau melepaskan perangkat Informasi pemeliharaan o mendapatkan waktu atau tanggal, mengatur waktu atau tanggal o mendapatkan data sistem, mengatur data sistem o mendapatkan atribut proses, file, atau perangkat o set proses, file, atau perangkat atribut Komunikasi o membuat, menghapus sambungan komunikasi o mengirim, menerima pesan

o Transfer informasi status o melampirkan atau melepaskan perangkat remote Gambar 2.5 Jenis sistem panggilan. invoking command interpreter. Command interpreter kemudian membaca berikutnya perintah. Dalam sebuah sistem interaktif, command interpreter hanya terus dengan perintah berikutnya; diasumsikan bahwa pengguna akan mengeluarkan sesuai memerintahkan untuk menanggapi kesalahan. Dalam sistem Cui, sebuah jendela popup mungkin mengingatkan pengguna untuk kesalahan dan meminta petunjuk. Dalam sistem batch, perintah penerjemah biasanya mengakhiri seluruh pekerjaan dan berlanjut dengan pekerjaan berikutnya. Beberapa sistem memungkinkan kartu kontrol untuk mengindikasikan tindakan pemulihan khusus dalam hal kesalahan terjadi. Kartu kontrol adalah sebuah konsep sistem batch. Ini adalah perintah untuk mengelola eksekusi proses. Jika program menemukan kesalahan dalam input dan ingin mengakhiri normal, mungkin juga ingin menentukan tingkat kesalahan. Kesalahan yang lebih parah dapat ditunjukkan dengan parameter kesalahan tingkat yang lebih tinggi. Hal ini kemudian mungkin untuk menggabungkan terminasi normal dan abnormal dengan mendefinisikan normal penghentian sebagai kesalahan di tingkat O. command interpreter atau pengikut program dapat menggunakan tingkat kesalahan untuk menentukan tindakan berikutnya secara otomatis. Sebuah proses atau pekerjaan mengeksekusi satu program mungkin ingin memuat dan mengeksekusi program lain. Fitur ini memungkinkan interpreter perintah untuk mengeksekusi Program seperti yang diarahkan oleh, misalnya, perintah pengguna, klik mouse, atau perintah batch. Pertanyaan menarik adalah tempat untuk mengembalikan kontrol ketika program dimuat berakhir. Pertanyaan ini berkaitan dengan masalah apakah program yang ada hilang, disimpan, atau diizinkan untuk melanjutkan eksekusi bersamaan dengan program baru. 50 Bab 2 Sistem Operasi Jika kontrol kembali ke program yang ada ketika program baru berakhir, kita harus menyimpan gambar memori dari program yang ada, dengan demikian, kita memiliki efektif menciptakan mekanisme untuk satu program untuk memanggil program lain. Jika kedua program terus bersamaan, kami telah menciptakan sebuah pekerjaan baru atau proses untuk akan multiprogrammed. Seringkali, ada panggilan sistem khusus untuk tujuan ini (Membuat proses atau menyerahkan pekerjaan). Jika kita menciptakan pekerjaan baru atau proses, atau bahkan satu set pekerjaan atau proses,

kita harus mampu mengendalikan pelaksanaannya. Kontrol ini membutuhkan kemampuan untuk menentukan dan mengatur ulang atribut pekerjaan atau proses, termasuk pekerjaan yang prioritas, waktu eksekusi maksimum, dan sebagainya (mendapatkan proses atribut dan atribut set proses). Kami juga mungkin ingin mengakhiri pekerjaan atau proses yang kita buat (menghentikan proses) jika kita menemukan bahwa itu adalah salah atau tidak lagi diperlukan. Setelah menciptakan pekerjaan baru atau proses, kita mungkin perlu menunggu mereka untuk menyelesaikan eksekusi mereka. Kita mungkin ingin menunggu untuk jumlah waktu tertentu untuk lulus (tunggu waktu); lebih mungkin, kita akan ingin menunggu untuk acara tertentu terjadi (menunggu acara). Pekerjaan atau proses harus kemudian sinyal ketika yang peristiwa telah terjadi (peristiwa sinyal). Sistem panggilan jenis ofthis, berurusan dengan koordinasi proses konkuren, dibahas secara detail dalam Bab 6. Satu set panggilan sistem sangat membantu dalam debugging program. Banyak sistem menyediakan sistem panggilan untuk membuang memori. Ketentuan ini berguna untuk debugging. Sebuah jejak program yang berisi daftar setiap instruksi seperti yang dieksekusi, melainkan disediakan oleh sistem yang lebih sedikit. Bahkan mikroprosesor menyediakan modus CPU dikenal sebagai langkah tunggal, di mana perangkap dijalankan oleh CPU setelah setiap instruksi. Perangkap ini biasanya ditangkap oleh debugger. Banyak sistem operasi menyediakan profil waktu dari sebuah program untuk menunjukkan jumlah waktu yang mengeksekusi program di lokasi tertentu atau set lokasi. Profil waktu membutuhkan baik fasilitas pelacakan atau timer biasa interupsi. Pada setiap terjadinya interupsi timer, nilai program

kontra dicatat. Dengan interupsi Timer cukup sering, sebuah statistik gambar dari waktu yang digunakan untuk berbagai bagian dari program ini dapat diperoleh. Ada begitu banyak aspek dan variasi dalam proses dan kontrol pekerjaan yang kami berikutnya menggunakan dua contoh ~ yang melibatkan sistem single-tasking dan lain sistem multitasking ~ yaitu menjelaskan konsep-konsep ini. Operasi MS-DOS sistem adalah contoh dari sistem single-tasking. Memiliki penerjemah perintah yang dipanggil ketika komputer dimulai (Gambar 2.7 (a)). Karena MS-DOS adalah single-tasking, menggunakan metode sederhana untuk menjalankan sebuah program dan tidak menciptakan proses baru. Ini beban program ke memori, menulis atas sebagian dari dirinya sendiri untuk memberikan program memori sebanyak mungkin (Gambar 2.7 (b)). Berikutnya, ia menetapkan instruksi pointer ke instruksi pertama dari program ini. Program kemudian berjalan, dan baik kesalahan menyebabkan perangkap, atau program mengeksekusi system call untuk mengakhiri. Dalam kedua kasus, kode kesalahan akan tersimpan dalam memori sistem untuk kemudian gunakan. Menyusul aksi ini, sebagian kecil dari command interpreter yang tidak ditimpa resume eksekusi. Tugas pertama adalah untuk kembali sisanya dari command interpreter dari disk. Kemudian command interpreter membuat kode kesalahan sebelumnya tersedia bagi pengguna atau untuk program berikutnya. FreeBSD (berasal dari Berkeley UNIX) adalah contoh dari multitasking sistem. Ketika user log on ke sistem, shell dari pilihan pengguna dijalankan. Shell ini mirip dengan shell MS-DOS dalam yang menerima perintah dan mengeksekusi program yang permintaan pengguna. Namun, karena FreeBSD adalah multitasking sistem, command interpreter dapat terus berjalan sementara program lain dieksekusi (Gambar 2.8). Untuk memulai proses baru, shell mengeksekusi sebuah system call forkO. Kemudian, program yang dipilih akan dimuat ke memori melalui panggilan 0 exec sistem, dan program dijalankan. Tergantung pada cara perintah itu dikeluarkan, shell maka baik menunggu proses untuk menyelesaikan atau menjalankan proses "di latar belakang." Dalam kasus terakhir, shell segera meminta perintah lain. Ketika sebuah proses sedang berjalan di latar belakang, tidak dapat menerima input langsung dari keyboard, karena shell menggunakan sumber ini. I / O karena itu dilakukan melalui file atau melalui suatu Cui antarmuka. Sementara itu, pengguna bebas untuk bertanya shell untuk menjalankan program lain, untuk memantau kemajuan proses rUlU1ing, untuk mengubah prioritas yang program,

dan sebagainya. Ketika proses ini dilakukan, dijalankan sebuah system call exit () untuk menghentikan, kembali ke proses memanggil sebuah kode status atau nol kode kesalahan. Ini status atau kode kesalahan ini kemudian tersedia untuk shell atau program. Proses ini dibahas dalam Bab 3 dengan contoh program yang menggunakan garpu () dan exec () sistem panggilan. 2,4 Jenis Sistem Panggilan 53 2.4.2 Manajemen File Sistem file akan dibahas lebih rinci dalam Bab 10 dan 11. Kami bisa, Namun, mengidentifikasi panggilan beberapa sistem umum menangani file, Pertama-tama kita harus mampu untuk membuat dan menghapus file. Entah system call memerlukan nama file dan mungkin beberapa atribut file itu. Setelah file yang dibuat, kita perlu untuk membukanya dan menggunakannya. Kami juga dapat membaca, menulis, atau reposisi (rewinding atau melompat-lompat ke akhir file, misalnya). Akhirnya, kita harus menutup file tersebut, menunjukkan bahwa kita tidak lagi menggunakannya. Kita mungkin perlu set ini sama operasi untuk direktori jika kita memiliki struktur direktori untuk file pengorganisasian dalam sistem file. Selain itu, untuk baik file atau direktori, kita harus mampu untuk menentukan nilai dari berbagai atribut dan mungkin untuk mengatur ulang mereka jika diperlukan. Atribut file termasuk nama file, jenis file, kode perlindungan, informasi akuntansi, dan sebagainya. Setidaknya dua panggilan sistem, mendapatkan atribut file dan mengatur atribut file, diperlukan untuk fungsi ini. Beberapa sistem operasi menyediakan lebih banyak panggilan, seperti panggilan untuk pindah file dan copy. Orang lain mungkin menyediakan sebuah API yang melakukan operasi-operasi menggunakan kode dan panggilan sistem lainnya, dan lainnya mungkin hanya menyediakan program sistem untuk melakukan tugas-tugas. Jika program sistem yang pelunasannya oleh program lain, maka masing-masing dapat dianggap API oleh

lain sistem program. 2.4.3 Perangkat Manajemen Sebuah proses mungkin perlu beberapa sumber daya untuk mengeksekusi-utama memori, disk drive, akses ke file, dan sebagainya. Jika sumber daya yang tersedia, mereka dapat diberikan, dan kontrol dapat dikembalikan ke proses pengguna. Jika tidak, proses akan harus menunggu sampai sumber daya yang cukup tersedia. Berbagai sumber daya dikendalikan oleh sysstem operasi dapat dianggap sebagai perangkat. Beberapa dari perangkat ini adalah perangkat fisik (misalnya, tape), sementara yang lain dapat dianggap sebagai perangkat abstrak atau virtual (misalnya, file). Jika ada beberapa pengguna dari sistem, sistem mungkin mengharuskan kita untuk pertama meminta perangkat, untuk memastikan penggunaan eksklusif itu. Setelah kita selesai dengan perangkat, kita melepaskannya. Fungsi-fungsi ini mirip dengan terbuka dan sistem panggilan akrab untuk file. Sistem operasi lain memberikan akses unmanaged ke perangkat. Bahaya kemudian adalah potensi pertentangan perangkat dan mungkin kebuntuan, yang dijelaskan dalam Bab 7. Setelah perangkat telah diminta (dan dialokasikan untuk kita), kita dapat membaca, menulis, dan (mungkin) reposisi perangkat, seperti kita bisa dengan file. Bahkan, kesamaan antara perangkat I / O dan file begitu besar sehingga banyak operasi sistem, termasuk UNIX, menggabungkan keduanya menjadi sebuah struktur fileperangkat gabungan. Dalam hal ini, satu set panggilan sistem yang digunakan pada file dan perangkat.Kadang-kadang, 1/0 perangkat yang diidentifikasi oleh nama file khusus, penempatan direktori, atau file atribut. UI juga dapat membuat file dan perangkat tampaknya serupa, meskipun panggilan sistem yang mendasarinya berbeda. Ini adalah contoh lain dari banyak keputusan desain yang masuk ke dalam membangun sistem operasi dan user interface. 2.4.4 Informasi Pemeliharaan System calls banyak ada hanya untuk tujuan pengiriman informasi antara program pengguna dan sistem operasi. Sebagai contoh, sebagian 54 Bab 2 Sistem Operasi sistem memiliki system call untuk mengembalikan waktu saat ini dan tanggal. Lain sistem panggilan dapat mengembalikan informasi tentang sistem, seperti jumlah saat ini pengguna, nomor versi dari sistem operasi, jumlah memori bebas atau ruang disk, dan sebagainya. Selain itu, sistem operasi menyimpan informasi tentang semua proses, dan panggilan sistem yang digunakan untuk mengakses informasi ini. Umumnya, panggilan juga digunakan untuk mereset informasi proses (mendapatkan atribut proses dan mengatur atribut proses). Dalam Bagian 3.1.3, kita membahas informasi apa yang biasanya disimpan. 2.4.5 Komunikasi

Ada dua model umum interprocess komunikasi: messagepassing yang model dan model shared-memori. Dalam model message-passing, yang mengkomunikasikan pesan proses pertukaran satu sama lain untuk mentransfer informasi. Pesan dapat dipertukarkan antara proses baik secara langsung atau tidak langsung melalui kotak surat umum. Sebelum komunikasi dapat tempat, sambungan harus dibuka. Nama dari komunikator lainnya harus diketahui, baik itu proses lain pada sistem yang sama atau proses pada komputer lain yang terhubung oleh jaringan komunikasi. Setiap komputer dalam jaringan memiliki narne host dengan yang umumnya dikenal. Sebuah host juga memiliki pengenal jaringan, seperti alamat IP. Demikian pula, setiap proses memiliki nama proses, dan nama ini diterjemahkan ke dalam sebuah identifier dimana sistem operasi dapat merujuk pada proses. The mendapatkan hostidand mendapatkan processid panggilan sistem melakukan terjemahan ini. Pengenal ini kemudian diteruskan ke generalpurpose membuka dan menutup panggilan yang diberikan oleh sistem file atau untuk spesifik membuka koneksi dan panggilan hubungan dekat sistem, tergantung pada sistem model komunikasi. Proses penerima biasanya harus memberikan yang izin untuk komunikasi dilakukan dengan panggilan koneksi menerima. Proses yang paling yang akan menerima koneksi tujuan khusus daenwns, yang adalah sistem program yang disediakan untuk tujuan itu. Mereka mengeksekusi menunggu untuk menghubungkan i on call dan dibangunkan ketika cOTmection dibuat. Sumber dari komunikasi, yang dikenal sebagai klien, dan daemon yang menerima, yang dikenal sebagai server, kemudian bertukar pesan dengan menggunakan pesan membaca dan menulis pesan sistem panggilan. Panggilan hubungan dekat berakhir komunikasi. Dalam memori bersama-proses modeC menggunakan memori bersama membuat dan memori bersama melampirkan sistem panggilan untuk membuat dan mendapatkan akses ke daerah memori yang dimiliki oleh proses lainnya. Ingat bahwa, biasanya, sistem operasi mencoba untuk mencegah satu proses dari mengakses memori proses lain itu.Bersama memori mengharuskan dua atau lebih proses setuju untuk menghapus pembatasan ini. Mereka kemudian dapat bertukar informasi dengan membaca dan menulis data dalam berbagi daerah. Bentuk data dan lokasi ditentukan oleh proses dan tidak berada di bawah kontrol sistem operasi. Proses juga bertanggung jawab untuk memastikan bahwa mereka tidak menulis ke lokasi yang sama secara bersamaan. Demikian mekanisme yang dibahas dalam Bab 6. Dalam Bab 4, kita melihat variasi dari skema-benang-dalam proses memori yang dibagi secara default. Kedua model yang baru saja dibahas umum dalam sistem operasi, dan kebanyakan sistem menerapkan keduanya. Message passing berguna untuk bertukar lebih kecil jumlah data, karena ada konflik perlu dihindari. Hal ini juga lebih mudah untuk

diterapkan daripada adalah memori bersama untuk komunikasi intercomputer. Bersama 2,5 Sistem Program 55 memori memungkinkan kecepatan maksimum dan kenyamanan komunikasi, karena dapat dilakukan pada kecepatan memori ketika terjadi di dalam komputer. Masalah ada, namun, di bidang perlindungan dan sinkronisasi antara proses berbagi memori.