SlideShare a Scribd company logo
Mac OS X memberikan banyak manfaat kepada pengguna Macintosh dan pengembang 
masyarakat. Manfaat ini termasuk peningkatan keandalan dan kinerja, 
fitur jaringan ditingkatkan, antarmuka pemrograman sistem berbasis obyek, dan 
peningkatan dukungan untuk standar industri. 
Dalam menciptakan Mac OS X, Apple telah benar-benar kembali direkayasa inti Mac OS 
sistem operasi. Membentuk dasar dari Mac OS X adalah kernel. Gambar 2-1 
menggambarkan arsitektur Mac OS X. 
Kernel menyediakan banyak perangkat tambahan untuk Mac OS X. Ini termasuk preemption, 
perlindungan memori, meningkatkan kinerja, fasilitas jaringan ditingkatkan, 
dukungan untuk kedua Macintosh (Extended dan Standard) dan non-Macintosh (UFS, ISO 
9660) file sistem, API berorientasi obyek, dan banyak lagi. Dua fitur ini, 
preemption dan perlindungan memori, menyebabkan lingkungan yang lebih kuat. 
kernel Arsitektur 
Dalam Mac OS 8 dan 9, aplikasi bekerja sama untuk berbagi waktu prosesor. Demikian pula, semua 
aplikasi berbagi memori komputer di antara mereka. Mac OS 8 dan 9 
multitaskingenvironments koperasi. Respon dari semua proses adalah 
dikompromikan jika bahkan satu aplikasi tidak bekerja sama. Di sisi lain, 
aplikasi real-time seperti multimedia harus yakin diprediksi, 
waktu-kritis, perilaku. 
Sebaliknya, Mac OS X adalah multitaskingenvironment preemptive. Dalam Mac OS X,
kernel menyediakan penegakan kerjasama, proses penjadwalan untuk berbagi waktu 
(preemption). Ini mendukung perilaku real-time dalam aplikasi yang membutuhkan itu. 
Dalam Mac OS X, proses biasanya tidak berbagi memori. Sebaliknya, pihak yang ditunjuk kernel 
setiap processits memiliki ruang alamat, mengendalikan akses ke ruang alamat tersebut. ini 
kontrol memastikan bahwa tidak ada aplikasi secara tidak sengaja dapat mengakses atau 
memodifikasi lain 
memori aplikasi (perlindungan). Ukuran tidak menjadi masalah; dengan memori virtual 
sistem termasuk dalam Mac OS X, setiap aplikasi memiliki akses ke sendiri 4 GB memori 
ruang alamat. 
Dilihat bersama-sama, semua aplikasi dikatakan berjalan di ruang pengguna, tapi ini tidak 
menyiratkan bahwa mereka berbagi memori. Ruang pengguna hanyalah sebuah istilah untuk 
gabungan 
ruang alamat dari semua aplikasi user-level. Kernel itu sendiri memiliki alamat sendiri 
ruang, disebut ruang kernel. Dalam Mac OS X, ada aplikasi dapat memodifikasi memori 
perangkat lunak sistem (kernel). 
Meskipun proses pengguna tidak berbagi memori secara default seperti di Mac OS 8 dan 9, 
komunikasi (dan bahkan berbagi memori) antara aplikasi masih mungkin. 
Sebagai contoh, kernel menawarkan kaya set primitif untuk mengizinkan beberapa berbagi 
informasi antar proses. Primitif ini termasuk shared library dan 
kerangka kerja. Pesan Mach memberikan pendekatan lain, menyerahkan memori dari 
satu proses ke proses lainnya. Tidak seperti Mac OS 8 dan 9, namun, berbagi memori tidak bisa 
terjadi tanpa tindakan nyata oleh programmer. 
Lapisan dasar dari Mac OS X terdiri dari beberapa arsitektur 
komponen, seperti yang ditunjukkan pada Gambar 2-3. Secara bersama-sama, komponen ini 
membentuk 
kernel environmentor sederhana, kernel.
penting 
Perhatikan bahwa Mac OS X menggunakan kernel istilah yang agak 
berbeda dari yang Anda dapat digunakan untuk melihat itu digunakan. 
Kernel, dalam terminologi sistem operasi tradisional, adalah inti kecil 
software yang memberikan fasilitas minimal yang diperlukan untuk melaksanakan 
layanan sistem operasi tambahan. - Dari Desain dan Pelaksanaan 
4.4 BSD Sistem Operasi, McKusick, Bostic, Karels, dan Quarterman, 1996 
Sebaliknya, Mac OS X menggunakan kernel istilah untuk merujuk kepada segala sesuatu yang 
mengeksekusi dalam 
ruang alamat kernel. 
Mac OS X kernel mencakup Mach, BSD, I / O Kit, sistem file, dan jaringan 
Mach 
Mach mengelola sumber daya prosesor seperti penggunaan CPU dan memori, menangani
penjadwalan, memberikan perlindungan memory, dan menyediakan pesan-berpusat 
infrastruktur ke seluruh lapisan sistem operasi. The Mach Komponen 
memberikan 
■ untyped IPCand RPC 
■ dukungan untuk SMP 
■ dukungan untuk real-timeservices 
■ pager anexternal 
■ arsitektur modular 
■ meningkatkan kinerja 
BSD 
Di atas lapisan Mach, lapisan BSD memberikan "kepribadian OS" API dan jasa. 
Lapisan BSD didasarkan pada kernel BSD, terutama FreeBSD. Komponen BSD 
memberikan 
■ file sistem 
■ jaringan 
■ kebijakan keamanan dasar seperti ID pengguna dan izin 
■ kerangka sistem - mekanisme untuk mengekspor API untuk aplikasi 
lapisan 
■ model proses BSD, termasuk ID proses dan sinyal 
■ API kernel FreeBSD 
■ banyak POSIXAPIs 
■ Pthreads (POSIX thread implementasi) 
Jaringan 
Mac OS X jaringan mengambil keuntungan dari kemampuan jaringan canggih BSD 
untuk memberikan dukungan untuk fitur-fitur modern, seperti Network Address Translation 
(NAT) dan firewall. Komponen jaringan menyediakan
■ 4.4BSD TCP / IP stack dan socket API 
■ dukungan untuk kedua IP dan AppleTalk 
■ multihoming 
■ Routing 
■ multicastsupport 
■ Server tala 
■ berbasis socket AppleTalk 
■ Mac OS dukungan Klasik 
■ berkarbonisasi Open Transport API 
FILE SISTEM 
Mac OS X menyediakan dukungan untuk berbagai jenis file sistem, termasuk HFS, 
HFS +, UFS, NFS, ISO 9660, dan lain-lain. Jenis default file sistem adalah HFS +; mac 
Sepatu OS X (dan "akar") dari HFS +. Fitur canggih Mac OS X sistem berkas 
mencakup ditingkatkan Virtual File System (VFS) desain. VFS menyediakan untuk berlapis 
arsitektur (file sistem stackable). Sistem file komponen memberikan 
■ UTF-8 (Unicode) dukungan 
■ peningkatan kinerja 
kernel Extensions 
Mac OS X menyediakan mekanisme ekstensi kernel sebagai sarana yang memungkinkan dinamis 
pemuatan potongan kode ke dalam kernel, tanpa perlu mengkompilasi ulang. ini 
potongan kode yang dikenal umum sebagai plug-Insor, dalam kernel Mac OS X, seperti 
kernel extensionsor kexts. 
Karena kexts menyediakan baik modularitas dan loadability dinamis, mereka adalah 
pilihan alami untuk layanan yang relatif mandiri yang membutuhkan akses ke kernel 
antarmuka internal. Banyak komponen lingkungan kernel mendukung ini 
mekanisme ekstensi, meskipun dengan cara yang berbeda.
Sebagai contoh, beberapa fitur jaringan baru melibatkan penggunaan jaringan 
ekstensi kernel (NKEs). Kemampuan untuk secara dinamis menambahkan file-sistem baru 
pelaksanaan didasarkan pada VFS kexts. Device driver dan keluarga perangkat di 
I / O Kit diimplementasikan menggunakan kexts. Kexts membuat pengembangan lebih mudah bagi 
pengembang menulis driver atau mereka menulis kode untuk mendukung format volume yang baru 
atau jaringan protokol 
“Extending the Kernel” 
Mac OS X menyediakan 
mekanisme ekstensi kernel sebagai sarana yang memungkinkan pembebanan dinamis dari kode ke 
kernel, tanpa perlu mengkompilasi ulang atau relink. Karena ekstensi kernel ini 
(Kexts) menyediakan baik modularitas dan loadability dinamis, mereka adalah alam 
pilihan untuk setiap layanan yang relatif mandiri yang membutuhkan akses ke kernel internal yang 
interface. 
Karena kexts berjalan dalam modus supervisor di ruang alamat kernel, mereka juga 
sulit untuk menulis dan debug dari modul user-level, dan harus sesuai dengan ketat 
pedoman. Selanjutnya, sumber kernel yang kabel (secara permanen menetap di memori) 
dan karena itu lebih mahal untuk digunakan dibandingkan sumber daya dalam tugas user-space 
setara 
fungsionalitas. 
Selain itu, meskipun perlindungan memori menjaga aplikasi dari menerjang 
sistem, tidak ada perlindungan seperti berada di tempat di dalam kernel. Sebuah kernel berperilaku 
buruk 
ekstensi di Mac OS X benar-benar dapat menyebabkan lebih banyak masalah daripada buruk 
berperilaku 
aplikasi atau ekstensi bisa di Mac OS 8 atau 9. 
Bugs di kexts dapat memiliki konsekuensi yang jauh lebih parah daripada bug dalam kode user-level. 
Misalnya, kesalahan akses memori dalam aplikasi pengguna dapat, paling buruk, menyebabkan 
bahwa 
aplikasi crash. Sebaliknya, kesalahan akses memori di kext menyebabkan sistem
panik, menabrak sistem operasi. 
Akhirnya, untuk alasan keamanan, beberapa pelanggan membatasi atau tidak mengizinkan 
penggunaan 
kexts pihak ketiga. Akibatnya, penggunaan kexts sangat tidak dianjurkan dalam situasi 
di mana solusi user-level layak. Mac OS X menjamin bahwa benang pengguna yang 
sama efisien sebagai thread kernel, sehingga efisiensi tidak harus menjadi masalah. kecuali Anda 
aplikasi membutuhkan akses tingkat rendah untuk kernel interface atau aliran data, Anda 
harus menggunakan tingkat yang lebih tinggi dari abstraksi ketika mengembangkan kode untuk Mac 
OS X. 
Memperluas Kernel 
Ketika Anda mencoba untuk menentukan apakah sebuah kode harus kext, defaultnya 
Jawabannya umumnya tidak. Secara khusus, jika kode Anda merupakan perpanjangan sistem 
Mac OS 8 atau 9, yang tidak berarti bahwa hal itu tentu harus menjadi perpanjangan kernel di 
Mac OS X. Hanya ada beberapa alasan bagus untuk pengembang untuk menulis kernel 
ekstensi: 
■ Kode Anda perlu mengambil interupsi utama, yaitu, sesuatu dalam perangkat keras 
perlu mengganggu CPU. 
■ Klien utama kode Anda di dalam kernel, misalnya, sebuah perangkat block 
yang klien utamanya adalah sistem file. 
■ Sejumlah cukup besar aplikasi yang berjalan membutuhkan sumber daya yang Anda 
kode menyediakan; misalnya, Anda telah menulis sebuah file sistem stack. 
■ Kode Anda perlu multipleks antara beberapa aplikasi client yang membutuhkan 
kecepatan tinggi, sinkronisasi baik, atau latency rendah. 
Jika kode Anda tidak memenuhi salah satu kriteria di atas, Anda harus mempertimbangkan 
mengembangkannya sebagai perpustakaan atau daemon user-level, atau menggunakan salah satu 
user-level 
plug-in arsitektur (seperti komponen QuickTime atau Core Graphics 
kerangka) alih-alih menulis ekstensi kernel.
Jika Anda menulis device driver atau kode untuk mendukung format volume yang baru atau 
jaringan protokol, namun, kexts mungkin satu-satunya solusi yang layak. 
Untungnya, sementara kexts mungkin lebih sulit untuk menulis daripada kode user-space, 
beberapa alat dan prosedur yang tersedia untuk meningkatkan pembangunan dan 
proses debugging. Lihat "Debugging kext Anda"// 
Kext debugging dapat menjadi rumit. Sebelum Anda dapat men-debug kext, Anda harus terlebih 
dahulu 
mengaktifkan kernel debugging, seperti Mac OS X biasanya tidak dikonfigurasi untuk mengizinkan 
debugging kernel. Hanya account root dapat mengaktifkan kernel debugging, dan Anda 
perlu reboot Mac OS X untuk perubahan berlaku. 
Kernel debugging dilakukan menggunakan dua mesin Mac OS X, yang disebut 
mesin pembangunan dan mesin target. Mesin ini harus terhubung melalui 
koneksi handal jaringan pada subnet yang sama (atau dalam jaringan lokal tunggal). 
Secara khusus, ada tidak boleh ada router IP intervensi atau perangkat lain yang bisa 
membuat Ethernet berbasis hardware pengalamatan mustahil. 
The kext terdaftar (dan KMODs diambil dan dijalankan) pada mesin target. 
Debugger ini diluncurkan dan dijalankan pada mesin pembangunan. Anda juga dapat 
membangun kembali kext Anda pada mesin pengembangan, setelah Anda memperbaiki kesalahan 
apapun yang Anda temukan. 
Debugging harus dilakukan dalam mode ini karena Anda sementara harus menghentikan 
kernel pada mesin target untuk menggunakan debugger. Bila Anda menghentikan 
kernel, semua proses lain pada mesin berhenti. Namun, debugger berjalan 
jarak jauh dapat terus berjalan dan dapat terus memeriksa (atau memodifikasi) kernel pada 
mesin target. 
Perhatikan bahwa bug di kexts dapat menyebabkan kernel sasaran untuk membekukan atau panik. 
Jika ini 
terjadi, Anda mungkin tidak dapat melanjutkan debugging, bahkan lebih dari remote 
koneksi; Anda harus reboot target dan mulai dari awal, pengaturan breakpoint hanya
sebelum kode di mana kext jatuh dan bekerja sangat hati -hati hingga kecelakaan 
titik. 
Kexts yang debug menggunakan GDB, debugger sumber-tingkat dengan baris perintah 
antarmuka. Anda akan perlu bekerja pada aplikasi Terminal untuk menjalankan GDB. untuk 
informasi rinci tentang cara menggunakan GDB, lihat dokumentasi yang disertakan dengan 
Mac OS X. Anda juga dapat menggunakan helpcommand dari dalam GDB 
Memperluas Kernel 
Karena kext debugging terjadi di seperti tingkat rendah, Anda tidak akan dapat mengambil 
keuntungan dari semua fitur GDB. Sebagai contoh: 
■ Anda tidak dapat menggunakan GDB untuk memanggil fungsi atau metode dalam kext a. 
■ Anda tidak dapat menggunakan GDB untuk debug mengganggu rutinitas. 
Berhati-hatilah bahwa Anda tidak menghentikan kernel terlalu lama ketika Anda debug (untuk 
Misalnya, ketika Anda mengatur breakpoints). Dalam waktu singkat, inkonsistensi internal yang 
dapat 
muncul yang menyebabkan kernel target untuk panik atau membekukan, memaksa Anda untuk 
reboot target 
mesin. 
Mach 
Layanan dasar dan primitif dari kernel Mac OS X didasarkan pada Mach 
3.0. Apple telah diubah dan diperpanjang Mach untuk lebih memenuhi Mac OS X fungsional dan 
tujuan kinerja. 
Mach 3,0 pada awalnya dipahami sebagai sederhana, extensible, komunikasi 
mikrokernel. Hal ini mampu berjalan sebagai kernel mandiri, dengan tradisional lainnya 
layanan sistem operasi seperti I / O, sistem file, dan tumpukan jaringan berjalan 
sebagai server mode pengguna. 
Namun, di Mac OS X, Mach terkait dengan komponen kernel lainnya menjadi satu 
ruang alamat kernel. Hal ini terutama untuk kinerja; itu jauh lebih cepat untuk membuat 
panggilan langsung antara komponen terkait daripada untuk mengirim pesan atau melakukan RPC
antara tugas-tugas yang terpisah. Ini modular hasil struktur yang lebih kuat dan 
sistem extensible dari kernel monolitik akan memungkinkan, tanpa kinerja 
hukuman dari mikrokernel murni. 
Jadi di Mac OS X, Mach tidak terutama hub komunikasi antara klien dan 
server. Sebaliknya, nilai terdiri dari abstraksi yang, diperpanjang nya, dan yang 
fleksibilitas. Secara khusus, Mach menyediakan 
■ API berbasis obyek dengan saluran komunikasi (misalnya efor, port) sebagai objek 
referensi 
■ eksekusi sangat paralel, termasuk benang Terlebih Dahulu dijadwalkan dan 
dukungan untuk SMP 
■ kerangka penjadwalan yang fleksibel, dengan dukungan untuk penggunaan real -time 
■ satu set lengkap IPCprimitives, termasuk pesan, RPC, sinkronisasi, 
dan pemberitahuan 
■ dukungan untuk ruang alamat virtual yang besar, bersama daerah memori, dan memori 
benda didukung oleh toko persisten 
22 Mach Kernel Abstractions 
BAB 3 
Mach 
■ terbukti diperpanjang dan portabilitas, misalnya di set instruksi 
arsitektur dan lingkungan di terdistribusi 
■ keamanan dan manajemen sumber daya sebagai prinsip dasar desain; semua 
sumber daya virtual 
Mach Kernel Abstractions 
Mach menyediakan sedikit saja dari abstraksi yang telah dirancang untuk menjadi sederhana 
dan kuat. Abstraksi kernel utama adalah 
■ Tasks.The unit kepemilikan sumber daya; setiap tugas terdiri dari alamat virtual 
ruang, port kanan ruang nama, dan satu set benang.
■ Threads. Unit eksekusi CPU. 
■ Alamat ruang. Dalam hubungannya dengan manajer memori, Mach mengimplementasikan 
gagasan ruang alamat virtual jarang dan memori bersama. 
■ benda Memory. Unit internal manajemen memori. benda memori 
termasuk entri nama dan daerah; mereka adalah representasi dari 
Data berpotensi-persistent yang dapat dipetakan ke ruang alamat. 
■ Ports. Aman, saluran komunikasi simpleks, hanya dapat diakses melalui mengirim dan 
menerima kemampuan (hak). 
■ IPC. Antrian pesan, panggilan prosedur remote, pemberitahuan, Semaphore, dan 
set kunci. 
■ Waktu. Jam, timer, dan menunggu. 
Pada tingkat perangkap, antarmuka untuk sebagian abstraksi Mach terdiri dari pesan terkirim 
ke dan dari pelabuhan kernel yang mewakili benda-benda. Interface perangkap-tingkat (seperti 
sebagai mach_msg_overwrite_trap) dan pesan format yang sendiri disarikan dalam 
penggunaan normal oleh Mach Antarmuka Generator (MIG). MIG digunakan untuk mengkompilasi 
interface prosedural untuk API berbasis pesan, berdasarkan deskripsi dari mereka 
API. 
Mach 
Sebuah thread adalah entitas yang cukup ringan. Hal ini cukup murah untuk membuat dan memiliki 
rendah 
overhead untuk beroperasi. Hal ini benar karena thread memiliki informasi negara kecil (kebanyakan 
state register); tugasnya memiliki menanggung beban pengelolaan sumber daya. pada 
mesin multiprosesor, adalah mungkin untuk beberapa benang dalam tugas untuk mengeksekusi 
dalam 
paralel. Bahkan ketika paralelisme bukanlah tujuan, beberapa benang memiliki keuntungan 
di setiap thread dapat menggunakan gaya pemrograman sinkron, daripada mencoba 
pemrograman asynchronous dengan thread tunggal berusaha untuk menyediakan beberapa 
layanan.
Ports, Port Rights, Port Sets, and Port Name 
Spaces 
Sebuah thread adalah entitas komputasi dasar. Sebuah thread milik satu dan hanya satu 
tugas yang mendefinisikan ruang alamat virtual. Untuk mempengaruhi struktur alamat 
ruang atau untuk referensi semua sumber daya lain selain ruang alamat, benang harus 
mengeksekusi instruksi perangkap khusus yang menyebabkan kernel untuk melakukan operasi pada 
nama benang atau mengirim pesan ke beberapa agen atas nama benang. di 
umum, perangkap ini memanipulasi sumber daya terkait dengan tugas yang berisi 
benang. Permintaan dapat dibuat dari kernel untuk memanipulasi entitas: untuk membuat 
mereka, menghapusnya, dan mempengaruhi negara mereka. 
Mach menyediakan kerangka kerja yang fleksibel untuk kebijakan penjadwalan thread. versi awal 
Mac OS X dukungan baik waktu-sharingand tetap prioritypolicies. A 
prioritas timesharing thread dinaikkan dan diturunkan untuk menyeimbangkan sumber dayanya 
Konsumsi terhadap benang time-sharing lainnya. 
Benang tetap prioritas mengeksekusi untuk quantum waktu tertentu, dan kemudian diletakkan di 
akhir antrian benang prioritas yang sama. Menetapkan prioritas thread tetap murah 
tingkat kuantum hingga tak terbatas memungkinkan benang untuk menjalankan sampai blok, atau 
sampai itu 
mendahului oleh thread prioritas yang lebih tinggi. Prioritas tinggi benang real -time 
biasanya tetap prioritas. 
Versi mendatang dari Mac OS X mungkin memiliki kebijakan penjadwalan tambahan, untuk lebih 
dukungan real-time yang canggih. 
Dengan pengecualian dari ruang alamat virtual tugas ini, semua sumber daya lainnya Mach adalah 
diakses melalui tingkat tipuan yang dikenal sebagai port. Sebuah port adalah titik akhir dari 
saluran komunikasi searah antara klien yang meminta layanan dan
server yang memberikan layanan. Jika balasan yang akan diberikan kepada layanan tersebut 
permintaan, port kedua harus digunakan. 
Dalam kebanyakan kasus, sumber daya yang diakses oleh port (yaitu, dinamai oleh itu) adalah 
disebut sebagai objek. Kebanyakan benda disebut oleh port memiliki penerima tunggal dan 
(berpotensi) beberapa pengirim. Artinya, ada tepat satu menerima pelabuhan, dan setidaknya 
satu pengiriman pelabuhan, untuk objek khas seperti antrian pesan. 
Layanan yang akan diberikan oleh suatu benda ditentukan oleh manajer yang menerima 
permintaan yang dikirim ke objek. Ini mengikuti bahwa penerima untuk port yang terkait dengan 
objek dari kernel adalah kernel dan penerima untuk port yang terkait dengan 
benda-tugas yang diberikan adalah tugas menyediakan objek. 
Untuk port yang nama benda-tugas yang diberikan, adalah mungkin untuk mengubah penerima 
meminta untuk itu port tugas yang berbeda, misalnya dengan melewatkan port untuk tugas itu 
dalam pesan. Sebuah tugas tunggal dapat memiliki beberapa port yang mengacu pada sumber daya 
yang 
mendukung. Untuk itu, setiap entitas yang diberikan dapat memiliki beberapa port yang 
mewakilinya, 
masing-masing menyiratkan set yang berbeda dari operasi diperbolehkan. Sebagai contoh, banyak 
benda 
memiliki nama portand port kontrol (kadang-kadang disebut port istimewa). akses 
ke port kontrol memungkinkan objek yang akan dimanipulasi; Akses ke port nama 
hanya nama objek, misalnya, untuk kembali informasi tentang hal itu. 
Tugas memiliki izin untuk port akses dengan cara tertentu (mengirim, menerima, mengirim-sekali); 
ini disebut hak pelabuhan. Sebuah port dapat diakses hanya melalui hak. Port sering 
digunakan untuk memberikan klien akses ke obyek dalam Mach. Memiliki hak untuk mengirim ke 
pelabuhan IPC objek menunjukkan hak untuk memanipulasi objek dalam cara yang ditentukan. 
sebagai 
, hak kepemilikan pelabuhan tersebut adalah mekanisme keamanan mendasar dalam Mach. 
Memiliki hak untuk objek adalah memiliki kemampuan untuk mengakses atau memanipulasi objek. 
Hak port dapat disalin dan dipindahkan antara tugas melalui IPC. Melakukan hal itu, pada dasarnya,
melewati kemampuan untuk beberapa objek atau server. 
Jenis Port 
Salah satu jenis objek disebut oleh port adalah satu set pelabuhan. Seperti namanya, port set 
adalah seperangkat hak port yang dapat diperlakukan sebagai satu kesatuan ketika menerima pesan 
atau acara dari salah satu anggota dari himpunan. Pelabuhan set mengizinkan satu thread untuk 
menunggu 
sejumlah sumber pesan dan acara, misalnya dalam loop kerja. 
Secara tradisional di Mach, saluran komunikasi dilambangkan dengan port selalu 
antrian pesan. Namun, Mac OS X mendukung jenis tambahan 
saluran komunikasi, dan jenis baru dari objek IPC juga diwakili oleh 
port dan hak pelabuhan. Lihat bagian, "Tugas ke Task Komunikasi (IPC)" 
(halaman 28), untuk rincian lebih lanjut tentang pesan dan jenis IPC lainnya. 
Pelabuhan dan hak pelabuhan tidak memiliki nama systemwide yang memungkinkan port 
sewenang-wenang atau 
hak untuk dimanipulasi secara langsung. Port dapat dimanipulasi oleh tugas hanya jika tugas 
memiliki port tepat di ruang nama pelabuhan. Sebuah port benar ditentukan oleh nama port, 
sebuah 
indeks integer menjadi 32-bit ruang nama pelabuhan. Setiap tugas telah terkait dengan itu satu 
ruang nama pelabuhan. 
Tugas memperoleh hak pelabuhan ketika tugas lain secara eksplisit memasukkan mereka ke dalam 
namanya 
ruang, ketika mereka menerima hak dalam pesan, dengan menciptakan benda-benda yang 
mengembalikan hak 
ke objek, dan melalui Mach panggilan untuk pelabuhan khusus tertentu (mach_thread_self, 
mach_task_self, and mach_reply_port.) 
Memory Management 
Akses Runtime dilakukan melalui alamat virtual yang 
mungkin tidak sesuai dengan lokasi di memori fisik pada saat awal
mencoba akses. Mach bertanggung jawab untuk mendamaikan akses 
yang diminta dalam maya 
ruang dengan lokasi di memori fisik. Ia melakukannya melalui 
permintaan packing. 
Halaman default menangani memori nonpersistent, dikenal 
sebagai memori anonim. 
Memori Anonymous adalah nol-diinisialisasi, dan ia hanya ada 
selama hidup tugas. 
The vnode pager peta file ke objek memori. Mach ekspor antarmuka 
untuk 
benda memori untuk memungkinkan isinya akan disumbangkan oleh 
tugas-tugas user-mode. ini 
antarmuka dikenal sebagai Memori Eksternal Manajemen Interface, 
atau Emmi. 
Ekspor subsistem manajemen memori memori virtual menangani 
dikenal sebagai 
entri memori bernama. Seperti kebanyakan sumber kernel, ini 
dilambangkan dengan port. 
Memiliki bernama entri memori menangani memungkinkan 
pemiliknya untuk memetakan mendasari 
objek memori virtual atau untuk lulus hak untuk memetakan objek 
yang mendasari kepada orang lain. 
Pemetaan entri disebutkan dalam dua berbeda hasil tugas di jendela 
memori bersama
antara dua tugas, sehingga memberikan suatu metode yang fleksibel 
untuk mengembangkan penerbangan berbagi 
memori. 
Alamat rentang ruang memori virtual juga dapat diisi melalui 
langsung 
Alokasi (menggunakan vm_allocate). Objek memori virtual 
mendasari 
anonim dan didukung oleh pager default. Rentang berbagi sebuah 
ruang alamat 
juga dapat diatur melalui warisan. Ketika tugas-tugas baru 
diciptakan, mereka kloning 
dari orang tua. Kloning ini berkaitan dengan ruang alamat memori 
yang mendasari sebagai 
baik. Bagian Dipetakan objek dapat diwariskan sebagai salinan, atau 
sebagai bersama, atau tidak sama 
semua, berdasarkan atribut yang terkait dengan pemetaan. Mach 
praktek bentuk 
copy tertunda dikenal sebagai copy-on-writeto mengoptimalkan 
kinerja diwariskan 
salinan pada penciptaan tugas. 
Alih-alih langsung menyalin jangkauan, optimasi copy-on-write 
adalah 
dilakukan dengan berbagi dilindungi. Dua tugas memori yang akan 
disalin,
tapi dengan akses read-only. Saat salah satu tugas mencoba untuk 
memodifikasi sebagian dari 
jangkauan, sebagian yang disalin pada saat itu. Ini evaluasi malas 
salinan memori 
optimasi penting yang memungkinkan penyederhanaan di beberapa 
daerah, terutama 
API messaging. 
Salah satu bentuk lain dari berbagi disediakan oleh Mach, melalui 
ekspor bernama 
daerah. Sebuah wilayah bernama adalah bentuk entri bernama, tapi 
bukannya didukung oleh 
objek memori virtual, didukung oleh peta fragmen virtual. Fragmen 
ini mungkin 
terus pemetaan ke berbagai obyek virtual memory. Hal ini mappable 
ke lainnya 
peta virtual, memberikan cara mewarisi tidak hanya sekelompok 
memori virtual 
benda tetapi juga hubungan pemetaan yang ada. Fitur ini 
menawarkan signifikan 
optimasi di setup tugas, misalnya ketika berbagi wilayah kompleks 
ruang alamat yang digunakan untuk perpustakaan
Task to Task Communication (IPC) 
Komunikasi antara tugas merupakan elemen penting dari filosofi 
Mach. 
Mach mendukung struktur sistem client / server dimana tugas (klien) 
Akses 
jasa dengan membuat permintaan dari tugas-tugas lain (server) 
melalui pesan dikirim melalui 
saluran komunikasi. 
Titik akhir dari saluran komunikasi ini di Mach disebut port, 
sementara 
hak pelabuhan menunjukkan izin untuk menggunakan saluran. 
Bentuk-bentuk IPC disediakan oleh 
Mach termasuk 
■ antrian pesan 
■ Semaphore 
■ pemberitahuan 
■ kunci set 
■ panggilan prosedur jauh (RPC) 
Jenis objek IPC dilambangkan dengan port menentukan operasi yang 
diijinkan 
pada port itu, dan bagaimana (dan apakah) transfer data terjadi. 
penting 
Fasilitas IPC di Mac OS X berada dalam keadaan transisi. di
versi awal dari sistem, tidak semua jenis IPC mungkin 
dilaksanakan. 
Ada dua API Mach fundamental berbeda untuk manipulasi baku 
ports-yang 
mach_ipcfamily dan mach_msgfamily tersebut. Dalam alasan, 
kedua keluarga mungkin 
digunakan dengan benda IPC; Namun, mach_ipccalls lebih disukai 
dalam kode baru. 
The mach_ipccalls menjaga informasi negara mana yang tepat untuk 
mendukung 
gagasan transaksi. The mach_msgcalls yang didukung untuk kode 
warisan tapi 
usang; mereka stateless.

More Related Content

What's hot

Verri suryap m3308030
Verri suryap m3308030Verri suryap m3308030
Verri suryap m3308030
verrisuryappppp
 
Sistem Operasi
Sistem OperasiSistem Operasi
Sistem Operasi
Barmed Studio
 
Jenis Layanan & Macam Sistem Operasi Jaringan
Jenis Layanan & Macam Sistem Operasi JaringanJenis Layanan & Macam Sistem Operasi Jaringan
Jenis Layanan & Macam Sistem Operasi Jaringan
A Sisdianto Sumarna
 
Sistem operasi client server
Sistem operasi client serverSistem operasi client server
Sistem operasi client serverarfianti
 
9.sistem file
9.sistem file9.sistem file
9.sistem file
Renol Doang
 
Arsitektur Sistem Operasi
Arsitektur Sistem OperasiArsitektur Sistem Operasi
Arsitektur Sistem Operasiviviluthfiyah
 
Makalah kelebihan dan kekurangan sistem operasi linux
Makalah kelebihan dan kekurangan sistem operasi linuxMakalah kelebihan dan kekurangan sistem operasi linux
Makalah kelebihan dan kekurangan sistem operasi linux
dellasafira
 
Arsitektur sistem operasi linux.
Arsitektur sistem operasi linux.Arsitektur sistem operasi linux.
Arsitektur sistem operasi linux.
UIN SUSKA RIAU
 
Sejarah sistem operasi linux wa ode ambar wati dabu
Sejarah sistem operasi linux wa ode ambar wati  dabuSejarah sistem operasi linux wa ode ambar wati  dabu
Sejarah sistem operasi linux wa ode ambar wati dabuOperator Warnet Vast Raha
 
Macam macam sistem operasi berbasis gui dan teks
Macam macam sistem operasi berbasis gui dan teksMacam macam sistem operasi berbasis gui dan teks
Macam macam sistem operasi berbasis gui dan teks
Fanda Elvira Rosa
 
File system
File systemFile system
File system
Ngurah Ajoes
 
Debian
DebianDebian
Debian
Ditta Paski
 
Sistem operasi jaringan
Sistem operasi jaringanSistem operasi jaringan
Sistem operasi jaringanYuliana Spega
 
File system pd os windows dan linux
File system pd os windows dan linuxFile system pd os windows dan linux
File system pd os windows dan linuxVulkan Abriyanto
 
Sistem tterdistribusi (dhaa10)
Sistem tterdistribusi (dhaa10)Sistem tterdistribusi (dhaa10)
Sistem tterdistribusi (dhaa10)Mawaddah Warahmah
 

What's hot (18)

Linux
LinuxLinux
Linux
 
Verri suryap m3308030
Verri suryap m3308030Verri suryap m3308030
Verri suryap m3308030
 
Sistem Operasi
Sistem OperasiSistem Operasi
Sistem Operasi
 
Jenis Layanan & Macam Sistem Operasi Jaringan
Jenis Layanan & Macam Sistem Operasi JaringanJenis Layanan & Macam Sistem Operasi Jaringan
Jenis Layanan & Macam Sistem Operasi Jaringan
 
Sistem operasi client server
Sistem operasi client serverSistem operasi client server
Sistem operasi client server
 
9.sistem file
9.sistem file9.sistem file
9.sistem file
 
Arsitektur Sistem Operasi
Arsitektur Sistem OperasiArsitektur Sistem Operasi
Arsitektur Sistem Operasi
 
Makalah kelebihan dan kekurangan sistem operasi linux
Makalah kelebihan dan kekurangan sistem operasi linuxMakalah kelebihan dan kekurangan sistem operasi linux
Makalah kelebihan dan kekurangan sistem operasi linux
 
Arsitektur sistem operasi linux.
Arsitektur sistem operasi linux.Arsitektur sistem operasi linux.
Arsitektur sistem operasi linux.
 
Sejarah sistem operasi linux wa ode ambar wati dabu
Sejarah sistem operasi linux wa ode ambar wati  dabuSejarah sistem operasi linux wa ode ambar wati  dabu
Sejarah sistem operasi linux wa ode ambar wati dabu
 
Linux
LinuxLinux
Linux
 
Macam macam sistem operasi berbasis gui dan teks
Macam macam sistem operasi berbasis gui dan teksMacam macam sistem operasi berbasis gui dan teks
Macam macam sistem operasi berbasis gui dan teks
 
Makalah sejarah sistem operasi linux
Makalah sejarah   sistem  operasi linuxMakalah sejarah   sistem  operasi linux
Makalah sejarah sistem operasi linux
 
File system
File systemFile system
File system
 
Debian
DebianDebian
Debian
 
Sistem operasi jaringan
Sistem operasi jaringanSistem operasi jaringan
Sistem operasi jaringan
 
File system pd os windows dan linux
File system pd os windows dan linuxFile system pd os windows dan linux
File system pd os windows dan linux
 
Sistem tterdistribusi (dhaa10)
Sistem tterdistribusi (dhaa10)Sistem tterdistribusi (dhaa10)
Sistem tterdistribusi (dhaa10)
 

Viewers also liked

Cake & Socialyse Facebook Platform Updates November 2015
Cake & Socialyse Facebook Platform Updates November 2015Cake & Socialyse Facebook Platform Updates November 2015
Cake & Socialyse Facebook Platform Updates November 2015
Cake
 
Cake & Socialyse Facebook August 2015 POV
Cake & Socialyse Facebook August 2015 POVCake & Socialyse Facebook August 2015 POV
Cake & Socialyse Facebook August 2015 POV
Cake
 
Presentation sig 2016
Presentation sig 2016Presentation sig 2016
Presentation sig 2016
Tiphaine Accary-Barbier
 
Legal notices
Legal noticesLegal notices
Legal noticesbigggbird
 
Cake & Socialyse January 2016 Facebook Updates
Cake & Socialyse January 2016 Facebook UpdatesCake & Socialyse January 2016 Facebook Updates
Cake & Socialyse January 2016 Facebook Updates
Cake
 
Cake & Socialyse Twitter POV July 2015
Cake & Socialyse Twitter POV July 2015Cake & Socialyse Twitter POV July 2015
Cake & Socialyse Twitter POV July 2015
Cake
 
Cake: Facebook Updates 3-2012
Cake: Facebook Updates 3-2012Cake: Facebook Updates 3-2012
Cake: Facebook Updates 3-2012
Cake
 
20150110_measuring the user experience cp9_yoshida
20150110_measuring the user experience cp9_yoshida20150110_measuring the user experience cp9_yoshida
20150110_measuring the user experience cp9_yoshida
Japan Culture Creation
 
Joliet Floral Social Media Plan Final
Joliet Floral Social Media Plan FinalJoliet Floral Social Media Plan Final
Joliet Floral Social Media Plan Finalrhendon8
 
SXSW 2014: 10 Trends from Cake Group & Havas Media
SXSW 2014: 10 Trends from Cake Group & Havas MediaSXSW 2014: 10 Trends from Cake Group & Havas Media
SXSW 2014: 10 Trends from Cake Group & Havas Media
Cake
 
CES 2014 Recap
CES 2014 RecapCES 2014 Recap
CES 2014 Recap
Cake
 

Viewers also liked (13)

Cake & Socialyse Facebook Platform Updates November 2015
Cake & Socialyse Facebook Platform Updates November 2015Cake & Socialyse Facebook Platform Updates November 2015
Cake & Socialyse Facebook Platform Updates November 2015
 
Cake & Socialyse Facebook August 2015 POV
Cake & Socialyse Facebook August 2015 POVCake & Socialyse Facebook August 2015 POV
Cake & Socialyse Facebook August 2015 POV
 
envmntl a/cing
envmntl a/cingenvmntl a/cing
envmntl a/cing
 
Presentation sig 2016
Presentation sig 2016Presentation sig 2016
Presentation sig 2016
 
Motos ktm
Motos ktmMotos ktm
Motos ktm
 
Legal notices
Legal noticesLegal notices
Legal notices
 
Cake & Socialyse January 2016 Facebook Updates
Cake & Socialyse January 2016 Facebook UpdatesCake & Socialyse January 2016 Facebook Updates
Cake & Socialyse January 2016 Facebook Updates
 
Cake & Socialyse Twitter POV July 2015
Cake & Socialyse Twitter POV July 2015Cake & Socialyse Twitter POV July 2015
Cake & Socialyse Twitter POV July 2015
 
Cake: Facebook Updates 3-2012
Cake: Facebook Updates 3-2012Cake: Facebook Updates 3-2012
Cake: Facebook Updates 3-2012
 
20150110_measuring the user experience cp9_yoshida
20150110_measuring the user experience cp9_yoshida20150110_measuring the user experience cp9_yoshida
20150110_measuring the user experience cp9_yoshida
 
Joliet Floral Social Media Plan Final
Joliet Floral Social Media Plan FinalJoliet Floral Social Media Plan Final
Joliet Floral Social Media Plan Final
 
SXSW 2014: 10 Trends from Cake Group & Havas Media
SXSW 2014: 10 Trends from Cake Group & Havas MediaSXSW 2014: 10 Trends from Cake Group & Havas Media
SXSW 2014: 10 Trends from Cake Group & Havas Media
 
CES 2014 Recap
CES 2014 RecapCES 2014 Recap
CES 2014 Recap
 

Similar to Kernel machintosh bahasa

Sistem operasi terdistribusi
Sistem operasi terdistribusiSistem operasi terdistribusi
Sistem operasi terdistribusihofidatur
 
Sistem operasi beos
Sistem operasi beosSistem operasi beos
Sistem operasi beos
megasilvianasp
 
Sistem operasi beos
Sistem operasi beosSistem operasi beos
Sistem operasi beos
megasilvianasp
 
Publikasi 07.11.1856
Publikasi 07.11.1856Publikasi 07.11.1856
Publikasi 07.11.1856
belabelabell
 
Sistem operasi
Sistem operasiSistem operasi
Sistem operasi
LuthfanZhafiri
 
dokumen.tech_sistem-operasi-terdistribusi.ppt
dokumen.tech_sistem-operasi-terdistribusi.pptdokumen.tech_sistem-operasi-terdistribusi.ppt
dokumen.tech_sistem-operasi-terdistribusi.ppt
CrisnaLidya
 
Instalasi Sistem Operasi Jaringan Bab 1
Instalasi Sistem Operasi Jaringan Bab 1Instalasi Sistem Operasi Jaringan Bab 1
Instalasi Sistem Operasi Jaringan Bab 1
Jimmy Sitorus
 
Instalasi SO Jar 1
Instalasi SO Jar 1Instalasi SO Jar 1
Instalasi SO Jar 1
Jimmi Sitorus
 
Installasi software windows
Installasi software windowsInstallasi software windows
Installasi software windows
Muhammad Hafizh Annur
 
Tugas sistem operasi2
Tugas sistem operasi2Tugas sistem operasi2
Tugas sistem operasi2
muhamadpandu1
 
Sistem_Operasi_Informatika_Thread_Kelompok B2.pptx
Sistem_Operasi_Informatika_Thread_Kelompok B2.pptxSistem_Operasi_Informatika_Thread_Kelompok B2.pptx
Sistem_Operasi_Informatika_Thread_Kelompok B2.pptx
11211058
 
Melakukan instalasi sistem operasi dasar
Melakukan instalasi sistem operasi dasarMelakukan instalasi sistem operasi dasar
Melakukan instalasi sistem operasi dasar
Victor Tengker
 
makalah Sistem operasi
makalah Sistem operasimakalah Sistem operasi
makalah Sistem operasi
Akmaall Akmaall
 
Makalah Sistem operasi
Makalah Sistem operasi Makalah Sistem operasi
Makalah Sistem operasi
Vetrik VizcaraLatul
 
File system di linux
File system di linuxFile system di linux
File system di linuxDhea Dhea
 
File system di linux
File system di linuxFile system di linux
File system di linuxDhea Dhea
 
Makalah sistem operasi
Makalah sistem operasiMakalah sistem operasi
Makalah sistem operasi
Rizky Kiki'a Angger
 
Artikel Sistem Operasi
Artikel Sistem OperasiArtikel Sistem Operasi
Artikel Sistem Operasi
Ahmad Effendi
 
Arsitektur Sistem Operasi
Arsitektur Sistem OperasiArsitektur Sistem Operasi
Arsitektur Sistem Operasi
viviluthfiyah
 

Similar to Kernel machintosh bahasa (20)

Kernel
KernelKernel
Kernel
 
Sistem operasi terdistribusi
Sistem operasi terdistribusiSistem operasi terdistribusi
Sistem operasi terdistribusi
 
Sistem operasi beos
Sistem operasi beosSistem operasi beos
Sistem operasi beos
 
Sistem operasi beos
Sistem operasi beosSistem operasi beos
Sistem operasi beos
 
Publikasi 07.11.1856
Publikasi 07.11.1856Publikasi 07.11.1856
Publikasi 07.11.1856
 
Sistem operasi
Sistem operasiSistem operasi
Sistem operasi
 
dokumen.tech_sistem-operasi-terdistribusi.ppt
dokumen.tech_sistem-operasi-terdistribusi.pptdokumen.tech_sistem-operasi-terdistribusi.ppt
dokumen.tech_sistem-operasi-terdistribusi.ppt
 
Instalasi Sistem Operasi Jaringan Bab 1
Instalasi Sistem Operasi Jaringan Bab 1Instalasi Sistem Operasi Jaringan Bab 1
Instalasi Sistem Operasi Jaringan Bab 1
 
Instalasi SO Jar 1
Instalasi SO Jar 1Instalasi SO Jar 1
Instalasi SO Jar 1
 
Installasi software windows
Installasi software windowsInstallasi software windows
Installasi software windows
 
Tugas sistem operasi2
Tugas sistem operasi2Tugas sistem operasi2
Tugas sistem operasi2
 
Sistem_Operasi_Informatika_Thread_Kelompok B2.pptx
Sistem_Operasi_Informatika_Thread_Kelompok B2.pptxSistem_Operasi_Informatika_Thread_Kelompok B2.pptx
Sistem_Operasi_Informatika_Thread_Kelompok B2.pptx
 
Melakukan instalasi sistem operasi dasar
Melakukan instalasi sistem operasi dasarMelakukan instalasi sistem operasi dasar
Melakukan instalasi sistem operasi dasar
 
makalah Sistem operasi
makalah Sistem operasimakalah Sistem operasi
makalah Sistem operasi
 
Makalah Sistem operasi
Makalah Sistem operasi Makalah Sistem operasi
Makalah Sistem operasi
 
File system di linux
File system di linuxFile system di linux
File system di linux
 
File system di linux
File system di linuxFile system di linux
File system di linux
 
Makalah sistem operasi
Makalah sistem operasiMakalah sistem operasi
Makalah sistem operasi
 
Artikel Sistem Operasi
Artikel Sistem OperasiArtikel Sistem Operasi
Artikel Sistem Operasi
 
Arsitektur Sistem Operasi
Arsitektur Sistem OperasiArsitektur Sistem Operasi
Arsitektur Sistem Operasi
 

Recently uploaded

PENGUMUMAN PPDB SMPN 4 PONOROGO TAHUN 2024.pdf
PENGUMUMAN PPDB SMPN 4 PONOROGO TAHUN 2024.pdfPENGUMUMAN PPDB SMPN 4 PONOROGO TAHUN 2024.pdf
PENGUMUMAN PPDB SMPN 4 PONOROGO TAHUN 2024.pdf
smp4prg
 
Program Kerja Kepala Sekolah 2023-2024.pdf
Program Kerja Kepala Sekolah 2023-2024.pdfProgram Kerja Kepala Sekolah 2023-2024.pdf
Program Kerja Kepala Sekolah 2023-2024.pdf
erlita3
 
Laporan Piket Guru untuk bukti dukung PMM.pdf
Laporan Piket Guru untuk bukti dukung PMM.pdfLaporan Piket Guru untuk bukti dukung PMM.pdf
Laporan Piket Guru untuk bukti dukung PMM.pdf
gloriosaesy
 
Kisi-kisi soal pai kelas 7 genap 2024.docx
Kisi-kisi soal pai kelas 7 genap 2024.docxKisi-kisi soal pai kelas 7 genap 2024.docx
Kisi-kisi soal pai kelas 7 genap 2024.docx
irawan1978
 
ppt profesionalisasi pendidikan Pai 9.pdf
ppt profesionalisasi pendidikan Pai 9.pdfppt profesionalisasi pendidikan Pai 9.pdf
ppt profesionalisasi pendidikan Pai 9.pdf
Nur afiyah
 
SOAL SBDP KELAS 3 SEMESTER GENAP TAHUN PELAJARAN 2023 2024
SOAL SBDP KELAS 3 SEMESTER GENAP TAHUN PELAJARAN 2023 2024SOAL SBDP KELAS 3 SEMESTER GENAP TAHUN PELAJARAN 2023 2024
SOAL SBDP KELAS 3 SEMESTER GENAP TAHUN PELAJARAN 2023 2024
ozijaya
 
INDIKATOR KINERJA DAN FOKUS PERILAKU KS.pdf
INDIKATOR KINERJA DAN FOKUS PERILAKU KS.pdfINDIKATOR KINERJA DAN FOKUS PERILAKU KS.pdf
INDIKATOR KINERJA DAN FOKUS PERILAKU KS.pdf
NurSriWidyastuti1
 
LK 1 - 5T Keputusan Berdampak PERMATA BUNDA.pdf
LK 1 - 5T Keputusan Berdampak PERMATA BUNDA.pdfLK 1 - 5T Keputusan Berdampak PERMATA BUNDA.pdf
LK 1 - 5T Keputusan Berdampak PERMATA BUNDA.pdf
UditGheozi2
 
0. PPT Juknis PPDB TK-SD -SMP 2024-2025 Cilacap.pptx
0. PPT Juknis PPDB TK-SD -SMP 2024-2025 Cilacap.pptx0. PPT Juknis PPDB TK-SD -SMP 2024-2025 Cilacap.pptx
0. PPT Juknis PPDB TK-SD -SMP 2024-2025 Cilacap.pptx
Indah106914
 
RANCANGAN TINDAKAN AKSI NYATA MODUL 1.4.pptx
RANCANGAN TINDAKAN AKSI NYATA MODUL 1.4.pptxRANCANGAN TINDAKAN AKSI NYATA MODUL 1.4.pptx
RANCANGAN TINDAKAN AKSI NYATA MODUL 1.4.pptx
SurosoSuroso19
 
Form B1 Rubrik Observasi Presentasi Visi Misi -1.docx
Form B1 Rubrik Observasi Presentasi Visi Misi -1.docxForm B1 Rubrik Observasi Presentasi Visi Misi -1.docx
Form B1 Rubrik Observasi Presentasi Visi Misi -1.docx
EkoPutuKromo
 
NUMERASI KOMPETENSI PENDIDIK TAHAP CAKAP DAN MAHIR.pdf
NUMERASI KOMPETENSI PENDIDIK TAHAP CAKAP DAN MAHIR.pdfNUMERASI KOMPETENSI PENDIDIK TAHAP CAKAP DAN MAHIR.pdf
NUMERASI KOMPETENSI PENDIDIK TAHAP CAKAP DAN MAHIR.pdf
DataSupriatna
 
Paparan Kurikulum Satuan Pendidikan_LOKAKARYA TPK 2024.pptx.pdf
Paparan Kurikulum Satuan Pendidikan_LOKAKARYA TPK 2024.pptx.pdfPaparan Kurikulum Satuan Pendidikan_LOKAKARYA TPK 2024.pptx.pdf
Paparan Kurikulum Satuan Pendidikan_LOKAKARYA TPK 2024.pptx.pdf
SEMUELSAMBOKARAENG
 
ppt landasan pendidikan pai 9 revisi.pdf
ppt landasan pendidikan pai 9 revisi.pdfppt landasan pendidikan pai 9 revisi.pdf
ppt landasan pendidikan pai 9 revisi.pdf
setiatinambunan
 
Laporan Kegiatan Pramuka Tugas Tambahan PMM.pdf
Laporan Kegiatan Pramuka Tugas Tambahan PMM.pdfLaporan Kegiatan Pramuka Tugas Tambahan PMM.pdf
Laporan Kegiatan Pramuka Tugas Tambahan PMM.pdf
UmyHasna1
 
Permainan Wiwi Wowo aksi nyata berkebhinekaan
Permainan Wiwi Wowo aksi nyata berkebhinekaanPermainan Wiwi Wowo aksi nyata berkebhinekaan
Permainan Wiwi Wowo aksi nyata berkebhinekaan
DEVI390643
 
KOMITMEN MENULIS DI BLOG KBMN PB PGRI.ppt
KOMITMEN MENULIS DI BLOG KBMN PB PGRI.pptKOMITMEN MENULIS DI BLOG KBMN PB PGRI.ppt
KOMITMEN MENULIS DI BLOG KBMN PB PGRI.ppt
Dedi Dwitagama
 
Patofisiologi Sistem Endokrin hormon pada sistem endokrin
Patofisiologi Sistem Endokrin hormon pada sistem endokrinPatofisiologi Sistem Endokrin hormon pada sistem endokrin
Patofisiologi Sistem Endokrin hormon pada sistem endokrin
rohman85
 
SEMINAR PPG DAN PPL ppg prajabatan 2024.pptx
SEMINAR PPG DAN PPL ppg prajabatan 2024.pptxSEMINAR PPG DAN PPL ppg prajabatan 2024.pptx
SEMINAR PPG DAN PPL ppg prajabatan 2024.pptx
bobobodo693
 
Modul Ajar Bahasa Inggris Kelas 5 Fase C Kurikulum Merdeka
Modul Ajar Bahasa Inggris Kelas 5 Fase C Kurikulum MerdekaModul Ajar Bahasa Inggris Kelas 5 Fase C Kurikulum Merdeka
Modul Ajar Bahasa Inggris Kelas 5 Fase C Kurikulum Merdeka
Fathan Emran
 

Recently uploaded (20)

PENGUMUMAN PPDB SMPN 4 PONOROGO TAHUN 2024.pdf
PENGUMUMAN PPDB SMPN 4 PONOROGO TAHUN 2024.pdfPENGUMUMAN PPDB SMPN 4 PONOROGO TAHUN 2024.pdf
PENGUMUMAN PPDB SMPN 4 PONOROGO TAHUN 2024.pdf
 
Program Kerja Kepala Sekolah 2023-2024.pdf
Program Kerja Kepala Sekolah 2023-2024.pdfProgram Kerja Kepala Sekolah 2023-2024.pdf
Program Kerja Kepala Sekolah 2023-2024.pdf
 
Laporan Piket Guru untuk bukti dukung PMM.pdf
Laporan Piket Guru untuk bukti dukung PMM.pdfLaporan Piket Guru untuk bukti dukung PMM.pdf
Laporan Piket Guru untuk bukti dukung PMM.pdf
 
Kisi-kisi soal pai kelas 7 genap 2024.docx
Kisi-kisi soal pai kelas 7 genap 2024.docxKisi-kisi soal pai kelas 7 genap 2024.docx
Kisi-kisi soal pai kelas 7 genap 2024.docx
 
ppt profesionalisasi pendidikan Pai 9.pdf
ppt profesionalisasi pendidikan Pai 9.pdfppt profesionalisasi pendidikan Pai 9.pdf
ppt profesionalisasi pendidikan Pai 9.pdf
 
SOAL SBDP KELAS 3 SEMESTER GENAP TAHUN PELAJARAN 2023 2024
SOAL SBDP KELAS 3 SEMESTER GENAP TAHUN PELAJARAN 2023 2024SOAL SBDP KELAS 3 SEMESTER GENAP TAHUN PELAJARAN 2023 2024
SOAL SBDP KELAS 3 SEMESTER GENAP TAHUN PELAJARAN 2023 2024
 
INDIKATOR KINERJA DAN FOKUS PERILAKU KS.pdf
INDIKATOR KINERJA DAN FOKUS PERILAKU KS.pdfINDIKATOR KINERJA DAN FOKUS PERILAKU KS.pdf
INDIKATOR KINERJA DAN FOKUS PERILAKU KS.pdf
 
LK 1 - 5T Keputusan Berdampak PERMATA BUNDA.pdf
LK 1 - 5T Keputusan Berdampak PERMATA BUNDA.pdfLK 1 - 5T Keputusan Berdampak PERMATA BUNDA.pdf
LK 1 - 5T Keputusan Berdampak PERMATA BUNDA.pdf
 
0. PPT Juknis PPDB TK-SD -SMP 2024-2025 Cilacap.pptx
0. PPT Juknis PPDB TK-SD -SMP 2024-2025 Cilacap.pptx0. PPT Juknis PPDB TK-SD -SMP 2024-2025 Cilacap.pptx
0. PPT Juknis PPDB TK-SD -SMP 2024-2025 Cilacap.pptx
 
RANCANGAN TINDAKAN AKSI NYATA MODUL 1.4.pptx
RANCANGAN TINDAKAN AKSI NYATA MODUL 1.4.pptxRANCANGAN TINDAKAN AKSI NYATA MODUL 1.4.pptx
RANCANGAN TINDAKAN AKSI NYATA MODUL 1.4.pptx
 
Form B1 Rubrik Observasi Presentasi Visi Misi -1.docx
Form B1 Rubrik Observasi Presentasi Visi Misi -1.docxForm B1 Rubrik Observasi Presentasi Visi Misi -1.docx
Form B1 Rubrik Observasi Presentasi Visi Misi -1.docx
 
NUMERASI KOMPETENSI PENDIDIK TAHAP CAKAP DAN MAHIR.pdf
NUMERASI KOMPETENSI PENDIDIK TAHAP CAKAP DAN MAHIR.pdfNUMERASI KOMPETENSI PENDIDIK TAHAP CAKAP DAN MAHIR.pdf
NUMERASI KOMPETENSI PENDIDIK TAHAP CAKAP DAN MAHIR.pdf
 
Paparan Kurikulum Satuan Pendidikan_LOKAKARYA TPK 2024.pptx.pdf
Paparan Kurikulum Satuan Pendidikan_LOKAKARYA TPK 2024.pptx.pdfPaparan Kurikulum Satuan Pendidikan_LOKAKARYA TPK 2024.pptx.pdf
Paparan Kurikulum Satuan Pendidikan_LOKAKARYA TPK 2024.pptx.pdf
 
ppt landasan pendidikan pai 9 revisi.pdf
ppt landasan pendidikan pai 9 revisi.pdfppt landasan pendidikan pai 9 revisi.pdf
ppt landasan pendidikan pai 9 revisi.pdf
 
Laporan Kegiatan Pramuka Tugas Tambahan PMM.pdf
Laporan Kegiatan Pramuka Tugas Tambahan PMM.pdfLaporan Kegiatan Pramuka Tugas Tambahan PMM.pdf
Laporan Kegiatan Pramuka Tugas Tambahan PMM.pdf
 
Permainan Wiwi Wowo aksi nyata berkebhinekaan
Permainan Wiwi Wowo aksi nyata berkebhinekaanPermainan Wiwi Wowo aksi nyata berkebhinekaan
Permainan Wiwi Wowo aksi nyata berkebhinekaan
 
KOMITMEN MENULIS DI BLOG KBMN PB PGRI.ppt
KOMITMEN MENULIS DI BLOG KBMN PB PGRI.pptKOMITMEN MENULIS DI BLOG KBMN PB PGRI.ppt
KOMITMEN MENULIS DI BLOG KBMN PB PGRI.ppt
 
Patofisiologi Sistem Endokrin hormon pada sistem endokrin
Patofisiologi Sistem Endokrin hormon pada sistem endokrinPatofisiologi Sistem Endokrin hormon pada sistem endokrin
Patofisiologi Sistem Endokrin hormon pada sistem endokrin
 
SEMINAR PPG DAN PPL ppg prajabatan 2024.pptx
SEMINAR PPG DAN PPL ppg prajabatan 2024.pptxSEMINAR PPG DAN PPL ppg prajabatan 2024.pptx
SEMINAR PPG DAN PPL ppg prajabatan 2024.pptx
 
Modul Ajar Bahasa Inggris Kelas 5 Fase C Kurikulum Merdeka
Modul Ajar Bahasa Inggris Kelas 5 Fase C Kurikulum MerdekaModul Ajar Bahasa Inggris Kelas 5 Fase C Kurikulum Merdeka
Modul Ajar Bahasa Inggris Kelas 5 Fase C Kurikulum Merdeka
 

Kernel machintosh bahasa

  • 1. Mac OS X memberikan banyak manfaat kepada pengguna Macintosh dan pengembang masyarakat. Manfaat ini termasuk peningkatan keandalan dan kinerja, fitur jaringan ditingkatkan, antarmuka pemrograman sistem berbasis obyek, dan peningkatan dukungan untuk standar industri. Dalam menciptakan Mac OS X, Apple telah benar-benar kembali direkayasa inti Mac OS sistem operasi. Membentuk dasar dari Mac OS X adalah kernel. Gambar 2-1 menggambarkan arsitektur Mac OS X. Kernel menyediakan banyak perangkat tambahan untuk Mac OS X. Ini termasuk preemption, perlindungan memori, meningkatkan kinerja, fasilitas jaringan ditingkatkan, dukungan untuk kedua Macintosh (Extended dan Standard) dan non-Macintosh (UFS, ISO 9660) file sistem, API berorientasi obyek, dan banyak lagi. Dua fitur ini, preemption dan perlindungan memori, menyebabkan lingkungan yang lebih kuat. kernel Arsitektur Dalam Mac OS 8 dan 9, aplikasi bekerja sama untuk berbagi waktu prosesor. Demikian pula, semua aplikasi berbagi memori komputer di antara mereka. Mac OS 8 dan 9 multitaskingenvironments koperasi. Respon dari semua proses adalah dikompromikan jika bahkan satu aplikasi tidak bekerja sama. Di sisi lain, aplikasi real-time seperti multimedia harus yakin diprediksi, waktu-kritis, perilaku. Sebaliknya, Mac OS X adalah multitaskingenvironment preemptive. Dalam Mac OS X,
  • 2. kernel menyediakan penegakan kerjasama, proses penjadwalan untuk berbagi waktu (preemption). Ini mendukung perilaku real-time dalam aplikasi yang membutuhkan itu. Dalam Mac OS X, proses biasanya tidak berbagi memori. Sebaliknya, pihak yang ditunjuk kernel setiap processits memiliki ruang alamat, mengendalikan akses ke ruang alamat tersebut. ini kontrol memastikan bahwa tidak ada aplikasi secara tidak sengaja dapat mengakses atau memodifikasi lain memori aplikasi (perlindungan). Ukuran tidak menjadi masalah; dengan memori virtual sistem termasuk dalam Mac OS X, setiap aplikasi memiliki akses ke sendiri 4 GB memori ruang alamat. Dilihat bersama-sama, semua aplikasi dikatakan berjalan di ruang pengguna, tapi ini tidak menyiratkan bahwa mereka berbagi memori. Ruang pengguna hanyalah sebuah istilah untuk gabungan ruang alamat dari semua aplikasi user-level. Kernel itu sendiri memiliki alamat sendiri ruang, disebut ruang kernel. Dalam Mac OS X, ada aplikasi dapat memodifikasi memori perangkat lunak sistem (kernel). Meskipun proses pengguna tidak berbagi memori secara default seperti di Mac OS 8 dan 9, komunikasi (dan bahkan berbagi memori) antara aplikasi masih mungkin. Sebagai contoh, kernel menawarkan kaya set primitif untuk mengizinkan beberapa berbagi informasi antar proses. Primitif ini termasuk shared library dan kerangka kerja. Pesan Mach memberikan pendekatan lain, menyerahkan memori dari satu proses ke proses lainnya. Tidak seperti Mac OS 8 dan 9, namun, berbagi memori tidak bisa terjadi tanpa tindakan nyata oleh programmer. Lapisan dasar dari Mac OS X terdiri dari beberapa arsitektur komponen, seperti yang ditunjukkan pada Gambar 2-3. Secara bersama-sama, komponen ini membentuk kernel environmentor sederhana, kernel.
  • 3. penting Perhatikan bahwa Mac OS X menggunakan kernel istilah yang agak berbeda dari yang Anda dapat digunakan untuk melihat itu digunakan. Kernel, dalam terminologi sistem operasi tradisional, adalah inti kecil software yang memberikan fasilitas minimal yang diperlukan untuk melaksanakan layanan sistem operasi tambahan. - Dari Desain dan Pelaksanaan 4.4 BSD Sistem Operasi, McKusick, Bostic, Karels, dan Quarterman, 1996 Sebaliknya, Mac OS X menggunakan kernel istilah untuk merujuk kepada segala sesuatu yang mengeksekusi dalam ruang alamat kernel. Mac OS X kernel mencakup Mach, BSD, I / O Kit, sistem file, dan jaringan Mach Mach mengelola sumber daya prosesor seperti penggunaan CPU dan memori, menangani
  • 4. penjadwalan, memberikan perlindungan memory, dan menyediakan pesan-berpusat infrastruktur ke seluruh lapisan sistem operasi. The Mach Komponen memberikan ■ untyped IPCand RPC ■ dukungan untuk SMP ■ dukungan untuk real-timeservices ■ pager anexternal ■ arsitektur modular ■ meningkatkan kinerja BSD Di atas lapisan Mach, lapisan BSD memberikan "kepribadian OS" API dan jasa. Lapisan BSD didasarkan pada kernel BSD, terutama FreeBSD. Komponen BSD memberikan ■ file sistem ■ jaringan ■ kebijakan keamanan dasar seperti ID pengguna dan izin ■ kerangka sistem - mekanisme untuk mengekspor API untuk aplikasi lapisan ■ model proses BSD, termasuk ID proses dan sinyal ■ API kernel FreeBSD ■ banyak POSIXAPIs ■ Pthreads (POSIX thread implementasi) Jaringan Mac OS X jaringan mengambil keuntungan dari kemampuan jaringan canggih BSD untuk memberikan dukungan untuk fitur-fitur modern, seperti Network Address Translation (NAT) dan firewall. Komponen jaringan menyediakan
  • 5. ■ 4.4BSD TCP / IP stack dan socket API ■ dukungan untuk kedua IP dan AppleTalk ■ multihoming ■ Routing ■ multicastsupport ■ Server tala ■ berbasis socket AppleTalk ■ Mac OS dukungan Klasik ■ berkarbonisasi Open Transport API FILE SISTEM Mac OS X menyediakan dukungan untuk berbagai jenis file sistem, termasuk HFS, HFS +, UFS, NFS, ISO 9660, dan lain-lain. Jenis default file sistem adalah HFS +; mac Sepatu OS X (dan "akar") dari HFS +. Fitur canggih Mac OS X sistem berkas mencakup ditingkatkan Virtual File System (VFS) desain. VFS menyediakan untuk berlapis arsitektur (file sistem stackable). Sistem file komponen memberikan ■ UTF-8 (Unicode) dukungan ■ peningkatan kinerja kernel Extensions Mac OS X menyediakan mekanisme ekstensi kernel sebagai sarana yang memungkinkan dinamis pemuatan potongan kode ke dalam kernel, tanpa perlu mengkompilasi ulang. ini potongan kode yang dikenal umum sebagai plug-Insor, dalam kernel Mac OS X, seperti kernel extensionsor kexts. Karena kexts menyediakan baik modularitas dan loadability dinamis, mereka adalah pilihan alami untuk layanan yang relatif mandiri yang membutuhkan akses ke kernel antarmuka internal. Banyak komponen lingkungan kernel mendukung ini mekanisme ekstensi, meskipun dengan cara yang berbeda.
  • 6. Sebagai contoh, beberapa fitur jaringan baru melibatkan penggunaan jaringan ekstensi kernel (NKEs). Kemampuan untuk secara dinamis menambahkan file-sistem baru pelaksanaan didasarkan pada VFS kexts. Device driver dan keluarga perangkat di I / O Kit diimplementasikan menggunakan kexts. Kexts membuat pengembangan lebih mudah bagi pengembang menulis driver atau mereka menulis kode untuk mendukung format volume yang baru atau jaringan protokol “Extending the Kernel” Mac OS X menyediakan mekanisme ekstensi kernel sebagai sarana yang memungkinkan pembebanan dinamis dari kode ke kernel, tanpa perlu mengkompilasi ulang atau relink. Karena ekstensi kernel ini (Kexts) menyediakan baik modularitas dan loadability dinamis, mereka adalah alam pilihan untuk setiap layanan yang relatif mandiri yang membutuhkan akses ke kernel internal yang interface. Karena kexts berjalan dalam modus supervisor di ruang alamat kernel, mereka juga sulit untuk menulis dan debug dari modul user-level, dan harus sesuai dengan ketat pedoman. Selanjutnya, sumber kernel yang kabel (secara permanen menetap di memori) dan karena itu lebih mahal untuk digunakan dibandingkan sumber daya dalam tugas user-space setara fungsionalitas. Selain itu, meskipun perlindungan memori menjaga aplikasi dari menerjang sistem, tidak ada perlindungan seperti berada di tempat di dalam kernel. Sebuah kernel berperilaku buruk ekstensi di Mac OS X benar-benar dapat menyebabkan lebih banyak masalah daripada buruk berperilaku aplikasi atau ekstensi bisa di Mac OS 8 atau 9. Bugs di kexts dapat memiliki konsekuensi yang jauh lebih parah daripada bug dalam kode user-level. Misalnya, kesalahan akses memori dalam aplikasi pengguna dapat, paling buruk, menyebabkan bahwa aplikasi crash. Sebaliknya, kesalahan akses memori di kext menyebabkan sistem
  • 7. panik, menabrak sistem operasi. Akhirnya, untuk alasan keamanan, beberapa pelanggan membatasi atau tidak mengizinkan penggunaan kexts pihak ketiga. Akibatnya, penggunaan kexts sangat tidak dianjurkan dalam situasi di mana solusi user-level layak. Mac OS X menjamin bahwa benang pengguna yang sama efisien sebagai thread kernel, sehingga efisiensi tidak harus menjadi masalah. kecuali Anda aplikasi membutuhkan akses tingkat rendah untuk kernel interface atau aliran data, Anda harus menggunakan tingkat yang lebih tinggi dari abstraksi ketika mengembangkan kode untuk Mac OS X. Memperluas Kernel Ketika Anda mencoba untuk menentukan apakah sebuah kode harus kext, defaultnya Jawabannya umumnya tidak. Secara khusus, jika kode Anda merupakan perpanjangan sistem Mac OS 8 atau 9, yang tidak berarti bahwa hal itu tentu harus menjadi perpanjangan kernel di Mac OS X. Hanya ada beberapa alasan bagus untuk pengembang untuk menulis kernel ekstensi: ■ Kode Anda perlu mengambil interupsi utama, yaitu, sesuatu dalam perangkat keras perlu mengganggu CPU. ■ Klien utama kode Anda di dalam kernel, misalnya, sebuah perangkat block yang klien utamanya adalah sistem file. ■ Sejumlah cukup besar aplikasi yang berjalan membutuhkan sumber daya yang Anda kode menyediakan; misalnya, Anda telah menulis sebuah file sistem stack. ■ Kode Anda perlu multipleks antara beberapa aplikasi client yang membutuhkan kecepatan tinggi, sinkronisasi baik, atau latency rendah. Jika kode Anda tidak memenuhi salah satu kriteria di atas, Anda harus mempertimbangkan mengembangkannya sebagai perpustakaan atau daemon user-level, atau menggunakan salah satu user-level plug-in arsitektur (seperti komponen QuickTime atau Core Graphics kerangka) alih-alih menulis ekstensi kernel.
  • 8. Jika Anda menulis device driver atau kode untuk mendukung format volume yang baru atau jaringan protokol, namun, kexts mungkin satu-satunya solusi yang layak. Untungnya, sementara kexts mungkin lebih sulit untuk menulis daripada kode user-space, beberapa alat dan prosedur yang tersedia untuk meningkatkan pembangunan dan proses debugging. Lihat "Debugging kext Anda"// Kext debugging dapat menjadi rumit. Sebelum Anda dapat men-debug kext, Anda harus terlebih dahulu mengaktifkan kernel debugging, seperti Mac OS X biasanya tidak dikonfigurasi untuk mengizinkan debugging kernel. Hanya account root dapat mengaktifkan kernel debugging, dan Anda perlu reboot Mac OS X untuk perubahan berlaku. Kernel debugging dilakukan menggunakan dua mesin Mac OS X, yang disebut mesin pembangunan dan mesin target. Mesin ini harus terhubung melalui koneksi handal jaringan pada subnet yang sama (atau dalam jaringan lokal tunggal). Secara khusus, ada tidak boleh ada router IP intervensi atau perangkat lain yang bisa membuat Ethernet berbasis hardware pengalamatan mustahil. The kext terdaftar (dan KMODs diambil dan dijalankan) pada mesin target. Debugger ini diluncurkan dan dijalankan pada mesin pembangunan. Anda juga dapat membangun kembali kext Anda pada mesin pengembangan, setelah Anda memperbaiki kesalahan apapun yang Anda temukan. Debugging harus dilakukan dalam mode ini karena Anda sementara harus menghentikan kernel pada mesin target untuk menggunakan debugger. Bila Anda menghentikan kernel, semua proses lain pada mesin berhenti. Namun, debugger berjalan jarak jauh dapat terus berjalan dan dapat terus memeriksa (atau memodifikasi) kernel pada mesin target. Perhatikan bahwa bug di kexts dapat menyebabkan kernel sasaran untuk membekukan atau panik. Jika ini terjadi, Anda mungkin tidak dapat melanjutkan debugging, bahkan lebih dari remote koneksi; Anda harus reboot target dan mulai dari awal, pengaturan breakpoint hanya
  • 9. sebelum kode di mana kext jatuh dan bekerja sangat hati -hati hingga kecelakaan titik. Kexts yang debug menggunakan GDB, debugger sumber-tingkat dengan baris perintah antarmuka. Anda akan perlu bekerja pada aplikasi Terminal untuk menjalankan GDB. untuk informasi rinci tentang cara menggunakan GDB, lihat dokumentasi yang disertakan dengan Mac OS X. Anda juga dapat menggunakan helpcommand dari dalam GDB Memperluas Kernel Karena kext debugging terjadi di seperti tingkat rendah, Anda tidak akan dapat mengambil keuntungan dari semua fitur GDB. Sebagai contoh: ■ Anda tidak dapat menggunakan GDB untuk memanggil fungsi atau metode dalam kext a. ■ Anda tidak dapat menggunakan GDB untuk debug mengganggu rutinitas. Berhati-hatilah bahwa Anda tidak menghentikan kernel terlalu lama ketika Anda debug (untuk Misalnya, ketika Anda mengatur breakpoints). Dalam waktu singkat, inkonsistensi internal yang dapat muncul yang menyebabkan kernel target untuk panik atau membekukan, memaksa Anda untuk reboot target mesin. Mach Layanan dasar dan primitif dari kernel Mac OS X didasarkan pada Mach 3.0. Apple telah diubah dan diperpanjang Mach untuk lebih memenuhi Mac OS X fungsional dan tujuan kinerja. Mach 3,0 pada awalnya dipahami sebagai sederhana, extensible, komunikasi mikrokernel. Hal ini mampu berjalan sebagai kernel mandiri, dengan tradisional lainnya layanan sistem operasi seperti I / O, sistem file, dan tumpukan jaringan berjalan sebagai server mode pengguna. Namun, di Mac OS X, Mach terkait dengan komponen kernel lainnya menjadi satu ruang alamat kernel. Hal ini terutama untuk kinerja; itu jauh lebih cepat untuk membuat panggilan langsung antara komponen terkait daripada untuk mengirim pesan atau melakukan RPC
  • 10. antara tugas-tugas yang terpisah. Ini modular hasil struktur yang lebih kuat dan sistem extensible dari kernel monolitik akan memungkinkan, tanpa kinerja hukuman dari mikrokernel murni. Jadi di Mac OS X, Mach tidak terutama hub komunikasi antara klien dan server. Sebaliknya, nilai terdiri dari abstraksi yang, diperpanjang nya, dan yang fleksibilitas. Secara khusus, Mach menyediakan ■ API berbasis obyek dengan saluran komunikasi (misalnya efor, port) sebagai objek referensi ■ eksekusi sangat paralel, termasuk benang Terlebih Dahulu dijadwalkan dan dukungan untuk SMP ■ kerangka penjadwalan yang fleksibel, dengan dukungan untuk penggunaan real -time ■ satu set lengkap IPCprimitives, termasuk pesan, RPC, sinkronisasi, dan pemberitahuan ■ dukungan untuk ruang alamat virtual yang besar, bersama daerah memori, dan memori benda didukung oleh toko persisten 22 Mach Kernel Abstractions BAB 3 Mach ■ terbukti diperpanjang dan portabilitas, misalnya di set instruksi arsitektur dan lingkungan di terdistribusi ■ keamanan dan manajemen sumber daya sebagai prinsip dasar desain; semua sumber daya virtual Mach Kernel Abstractions Mach menyediakan sedikit saja dari abstraksi yang telah dirancang untuk menjadi sederhana dan kuat. Abstraksi kernel utama adalah ■ Tasks.The unit kepemilikan sumber daya; setiap tugas terdiri dari alamat virtual ruang, port kanan ruang nama, dan satu set benang.
  • 11. ■ Threads. Unit eksekusi CPU. ■ Alamat ruang. Dalam hubungannya dengan manajer memori, Mach mengimplementasikan gagasan ruang alamat virtual jarang dan memori bersama. ■ benda Memory. Unit internal manajemen memori. benda memori termasuk entri nama dan daerah; mereka adalah representasi dari Data berpotensi-persistent yang dapat dipetakan ke ruang alamat. ■ Ports. Aman, saluran komunikasi simpleks, hanya dapat diakses melalui mengirim dan menerima kemampuan (hak). ■ IPC. Antrian pesan, panggilan prosedur remote, pemberitahuan, Semaphore, dan set kunci. ■ Waktu. Jam, timer, dan menunggu. Pada tingkat perangkap, antarmuka untuk sebagian abstraksi Mach terdiri dari pesan terkirim ke dan dari pelabuhan kernel yang mewakili benda-benda. Interface perangkap-tingkat (seperti sebagai mach_msg_overwrite_trap) dan pesan format yang sendiri disarikan dalam penggunaan normal oleh Mach Antarmuka Generator (MIG). MIG digunakan untuk mengkompilasi interface prosedural untuk API berbasis pesan, berdasarkan deskripsi dari mereka API. Mach Sebuah thread adalah entitas yang cukup ringan. Hal ini cukup murah untuk membuat dan memiliki rendah overhead untuk beroperasi. Hal ini benar karena thread memiliki informasi negara kecil (kebanyakan state register); tugasnya memiliki menanggung beban pengelolaan sumber daya. pada mesin multiprosesor, adalah mungkin untuk beberapa benang dalam tugas untuk mengeksekusi dalam paralel. Bahkan ketika paralelisme bukanlah tujuan, beberapa benang memiliki keuntungan di setiap thread dapat menggunakan gaya pemrograman sinkron, daripada mencoba pemrograman asynchronous dengan thread tunggal berusaha untuk menyediakan beberapa layanan.
  • 12. Ports, Port Rights, Port Sets, and Port Name Spaces Sebuah thread adalah entitas komputasi dasar. Sebuah thread milik satu dan hanya satu tugas yang mendefinisikan ruang alamat virtual. Untuk mempengaruhi struktur alamat ruang atau untuk referensi semua sumber daya lain selain ruang alamat, benang harus mengeksekusi instruksi perangkap khusus yang menyebabkan kernel untuk melakukan operasi pada nama benang atau mengirim pesan ke beberapa agen atas nama benang. di umum, perangkap ini memanipulasi sumber daya terkait dengan tugas yang berisi benang. Permintaan dapat dibuat dari kernel untuk memanipulasi entitas: untuk membuat mereka, menghapusnya, dan mempengaruhi negara mereka. Mach menyediakan kerangka kerja yang fleksibel untuk kebijakan penjadwalan thread. versi awal Mac OS X dukungan baik waktu-sharingand tetap prioritypolicies. A prioritas timesharing thread dinaikkan dan diturunkan untuk menyeimbangkan sumber dayanya Konsumsi terhadap benang time-sharing lainnya. Benang tetap prioritas mengeksekusi untuk quantum waktu tertentu, dan kemudian diletakkan di akhir antrian benang prioritas yang sama. Menetapkan prioritas thread tetap murah tingkat kuantum hingga tak terbatas memungkinkan benang untuk menjalankan sampai blok, atau sampai itu mendahului oleh thread prioritas yang lebih tinggi. Prioritas tinggi benang real -time biasanya tetap prioritas. Versi mendatang dari Mac OS X mungkin memiliki kebijakan penjadwalan tambahan, untuk lebih dukungan real-time yang canggih. Dengan pengecualian dari ruang alamat virtual tugas ini, semua sumber daya lainnya Mach adalah diakses melalui tingkat tipuan yang dikenal sebagai port. Sebuah port adalah titik akhir dari saluran komunikasi searah antara klien yang meminta layanan dan
  • 13. server yang memberikan layanan. Jika balasan yang akan diberikan kepada layanan tersebut permintaan, port kedua harus digunakan. Dalam kebanyakan kasus, sumber daya yang diakses oleh port (yaitu, dinamai oleh itu) adalah disebut sebagai objek. Kebanyakan benda disebut oleh port memiliki penerima tunggal dan (berpotensi) beberapa pengirim. Artinya, ada tepat satu menerima pelabuhan, dan setidaknya satu pengiriman pelabuhan, untuk objek khas seperti antrian pesan. Layanan yang akan diberikan oleh suatu benda ditentukan oleh manajer yang menerima permintaan yang dikirim ke objek. Ini mengikuti bahwa penerima untuk port yang terkait dengan objek dari kernel adalah kernel dan penerima untuk port yang terkait dengan benda-tugas yang diberikan adalah tugas menyediakan objek. Untuk port yang nama benda-tugas yang diberikan, adalah mungkin untuk mengubah penerima meminta untuk itu port tugas yang berbeda, misalnya dengan melewatkan port untuk tugas itu dalam pesan. Sebuah tugas tunggal dapat memiliki beberapa port yang mengacu pada sumber daya yang mendukung. Untuk itu, setiap entitas yang diberikan dapat memiliki beberapa port yang mewakilinya, masing-masing menyiratkan set yang berbeda dari operasi diperbolehkan. Sebagai contoh, banyak benda memiliki nama portand port kontrol (kadang-kadang disebut port istimewa). akses ke port kontrol memungkinkan objek yang akan dimanipulasi; Akses ke port nama hanya nama objek, misalnya, untuk kembali informasi tentang hal itu. Tugas memiliki izin untuk port akses dengan cara tertentu (mengirim, menerima, mengirim-sekali); ini disebut hak pelabuhan. Sebuah port dapat diakses hanya melalui hak. Port sering digunakan untuk memberikan klien akses ke obyek dalam Mach. Memiliki hak untuk mengirim ke pelabuhan IPC objek menunjukkan hak untuk memanipulasi objek dalam cara yang ditentukan. sebagai , hak kepemilikan pelabuhan tersebut adalah mekanisme keamanan mendasar dalam Mach. Memiliki hak untuk objek adalah memiliki kemampuan untuk mengakses atau memanipulasi objek. Hak port dapat disalin dan dipindahkan antara tugas melalui IPC. Melakukan hal itu, pada dasarnya,
  • 14. melewati kemampuan untuk beberapa objek atau server. Jenis Port Salah satu jenis objek disebut oleh port adalah satu set pelabuhan. Seperti namanya, port set adalah seperangkat hak port yang dapat diperlakukan sebagai satu kesatuan ketika menerima pesan atau acara dari salah satu anggota dari himpunan. Pelabuhan set mengizinkan satu thread untuk menunggu sejumlah sumber pesan dan acara, misalnya dalam loop kerja. Secara tradisional di Mach, saluran komunikasi dilambangkan dengan port selalu antrian pesan. Namun, Mac OS X mendukung jenis tambahan saluran komunikasi, dan jenis baru dari objek IPC juga diwakili oleh port dan hak pelabuhan. Lihat bagian, "Tugas ke Task Komunikasi (IPC)" (halaman 28), untuk rincian lebih lanjut tentang pesan dan jenis IPC lainnya. Pelabuhan dan hak pelabuhan tidak memiliki nama systemwide yang memungkinkan port sewenang-wenang atau hak untuk dimanipulasi secara langsung. Port dapat dimanipulasi oleh tugas hanya jika tugas memiliki port tepat di ruang nama pelabuhan. Sebuah port benar ditentukan oleh nama port, sebuah indeks integer menjadi 32-bit ruang nama pelabuhan. Setiap tugas telah terkait dengan itu satu ruang nama pelabuhan. Tugas memperoleh hak pelabuhan ketika tugas lain secara eksplisit memasukkan mereka ke dalam namanya ruang, ketika mereka menerima hak dalam pesan, dengan menciptakan benda-benda yang mengembalikan hak ke objek, dan melalui Mach panggilan untuk pelabuhan khusus tertentu (mach_thread_self, mach_task_self, and mach_reply_port.) Memory Management Akses Runtime dilakukan melalui alamat virtual yang mungkin tidak sesuai dengan lokasi di memori fisik pada saat awal
  • 15. mencoba akses. Mach bertanggung jawab untuk mendamaikan akses yang diminta dalam maya ruang dengan lokasi di memori fisik. Ia melakukannya melalui permintaan packing. Halaman default menangani memori nonpersistent, dikenal sebagai memori anonim. Memori Anonymous adalah nol-diinisialisasi, dan ia hanya ada selama hidup tugas. The vnode pager peta file ke objek memori. Mach ekspor antarmuka untuk benda memori untuk memungkinkan isinya akan disumbangkan oleh tugas-tugas user-mode. ini antarmuka dikenal sebagai Memori Eksternal Manajemen Interface, atau Emmi. Ekspor subsistem manajemen memori memori virtual menangani dikenal sebagai entri memori bernama. Seperti kebanyakan sumber kernel, ini dilambangkan dengan port. Memiliki bernama entri memori menangani memungkinkan pemiliknya untuk memetakan mendasari objek memori virtual atau untuk lulus hak untuk memetakan objek yang mendasari kepada orang lain. Pemetaan entri disebutkan dalam dua berbeda hasil tugas di jendela memori bersama
  • 16. antara dua tugas, sehingga memberikan suatu metode yang fleksibel untuk mengembangkan penerbangan berbagi memori. Alamat rentang ruang memori virtual juga dapat diisi melalui langsung Alokasi (menggunakan vm_allocate). Objek memori virtual mendasari anonim dan didukung oleh pager default. Rentang berbagi sebuah ruang alamat juga dapat diatur melalui warisan. Ketika tugas-tugas baru diciptakan, mereka kloning dari orang tua. Kloning ini berkaitan dengan ruang alamat memori yang mendasari sebagai baik. Bagian Dipetakan objek dapat diwariskan sebagai salinan, atau sebagai bersama, atau tidak sama semua, berdasarkan atribut yang terkait dengan pemetaan. Mach praktek bentuk copy tertunda dikenal sebagai copy-on-writeto mengoptimalkan kinerja diwariskan salinan pada penciptaan tugas. Alih-alih langsung menyalin jangkauan, optimasi copy-on-write adalah dilakukan dengan berbagi dilindungi. Dua tugas memori yang akan disalin,
  • 17. tapi dengan akses read-only. Saat salah satu tugas mencoba untuk memodifikasi sebagian dari jangkauan, sebagian yang disalin pada saat itu. Ini evaluasi malas salinan memori optimasi penting yang memungkinkan penyederhanaan di beberapa daerah, terutama API messaging. Salah satu bentuk lain dari berbagi disediakan oleh Mach, melalui ekspor bernama daerah. Sebuah wilayah bernama adalah bentuk entri bernama, tapi bukannya didukung oleh objek memori virtual, didukung oleh peta fragmen virtual. Fragmen ini mungkin terus pemetaan ke berbagai obyek virtual memory. Hal ini mappable ke lainnya peta virtual, memberikan cara mewarisi tidak hanya sekelompok memori virtual benda tetapi juga hubungan pemetaan yang ada. Fitur ini menawarkan signifikan optimasi di setup tugas, misalnya ketika berbagi wilayah kompleks ruang alamat yang digunakan untuk perpustakaan
  • 18. Task to Task Communication (IPC) Komunikasi antara tugas merupakan elemen penting dari filosofi Mach. Mach mendukung struktur sistem client / server dimana tugas (klien) Akses jasa dengan membuat permintaan dari tugas-tugas lain (server) melalui pesan dikirim melalui saluran komunikasi. Titik akhir dari saluran komunikasi ini di Mach disebut port, sementara hak pelabuhan menunjukkan izin untuk menggunakan saluran. Bentuk-bentuk IPC disediakan oleh Mach termasuk ■ antrian pesan ■ Semaphore ■ pemberitahuan ■ kunci set ■ panggilan prosedur jauh (RPC) Jenis objek IPC dilambangkan dengan port menentukan operasi yang diijinkan pada port itu, dan bagaimana (dan apakah) transfer data terjadi. penting Fasilitas IPC di Mac OS X berada dalam keadaan transisi. di
  • 19. versi awal dari sistem, tidak semua jenis IPC mungkin dilaksanakan. Ada dua API Mach fundamental berbeda untuk manipulasi baku ports-yang mach_ipcfamily dan mach_msgfamily tersebut. Dalam alasan, kedua keluarga mungkin digunakan dengan benda IPC; Namun, mach_ipccalls lebih disukai dalam kode baru. The mach_ipccalls menjaga informasi negara mana yang tepat untuk mendukung gagasan transaksi. The mach_msgcalls yang didukung untuk kode warisan tapi usang; mereka stateless.