Cache Memory
Cache memori adalah memori penyimpanan sementara yang mengambil sebagian ruang dari RAM.
Pada saat pengguna melakukan permintaan melalui browser atau aplikasi, prosesor akan memastikan ketersediaan data di cache memori lebih dulu.
Jika user baru pertama kali melakukan akses, tentunya belum ada data di cache.
Maka dari itu, prosesor akan mengakses sumber utama/database secara langsung.
Saat mengambil data dari sumber utama, prosesor juga akan mencatatnya di cache.
Jadi pada akses selanjutnya, processor bisa langsung mengambil data dari cache.
Penggunaan asosiasi untuk mengurangi tingkat kesalahan
State Manager, kemampuanAWS Systems Manager, membantu Anda menjagaAWSsumber daya dalam keadaan yang Anda tentukan dan kurangi penyimpangan konfigurasi. Untuk melakukannya,State Managermenggunakan asosiasi. Sesiasosiasiadalah konfigurasi yang Anda tetapkan keAWSsumber daya. Konfigurasi mendefinisikan status yang ingin Anda pertahankan pada sumber daya Anda. Misalnya, asosiasi dapat menentukan bahwa perangkat lunak antivirus harus diinstal dan berjalan pada node yang dikelola, atau bahwa port tertentu harus ditutup.
Asosiasi menentukan jadwal ketika menerapkan konfigurasi dan target untuk asosiasi. Misalnya, asosiasi untuk perangkat lunak antivirus mungkin berjalan sekali sehari pada semua node yang dikelola diAkun AWS. Jika perangkat lunak tidak diinstal pada node, maka asosiasi dapat menginstruksikanState Manageruntuk menginstalnya. Jika perangkat lunak diinstal, tetapi layanan tidak berjalan, maka asosiasi dapat menginstruksikanState Manageruntuk memulai layanan.
Prosedur berikut menjelaskan cara membuat asosiasi yang menggunakan salah satu Command atau Policy dokumen untuk menargetkan node yang dikelola. Untuk informasi tentang membuat asosiasi yang menggunakan runbook Otomatisasi untuk menargetkan node atau jenis lain dariAWSsumber daya, lihatMenjalankan otomatisasi dengan pemicu menggunakanState Manager.
Penggunaan cache bertingkat hirarki untuk mengurangi kesalahan penalti
Hierarki memori atau memory hierarchy
1. peningkatan waktu akses (access time) memori (semakin ke bawah semakin lambat, semakin ke atas semakin cepat)
2. peningkatan kapasitas (semakin ke bawah semakin besar, semakin ke atas semakin kecil)
3. peningkatan jarak dengan prosesor (semakin ke bawah semakin jauh, semakin ke atas semakin dekat)
4. penurunan harga memori tiap bitnya (semakin ke bawah semakin semakin murah, semakin ke atas semakin mahal).
Pengoptimalan Perangkat Lunak untuk Meningkatkan Efektifitas Cache
Proses latar depan adalah salah satu yang diperlukan untuk hal yang sedang dilakukan pengguna. Berbagai komponen aplikasi dapat menyebabkan proses di dalamnya dianggap sebagai latar depan dengan cara yang berbeda. Proses akan dianggap berada di latar depan jika salah satu kondisi berikut terpenuhi:
Proses menjalankan Activity di bagian atas layar yang berinteraksi dengan pengguna (metode onResume()-nya telah dipanggil).
Proses memiliki BroadcastReceiver yang sedang berjalan (metode BroadcastReceiver.onReceive()-nya berjalan).
Proses memiliki Service yang sedang menjalankan kode di salah satu callback-nya (Service.onCreate(), Service.onStart(), atau Service.onDestroy()).
Hanya ada beberapa proses seperti itu di dalam sistem, dan proses tersebut hanya akan diakhiri sebagai upaya terakhir jika memori terlalu sedikit sehingga proses ini tidak dapat terus berjalan. Umumnya, pada tahap ini, perangkat telah mencapai status paging, sehingga tindakan ini diperlukan untuk menjaga antarmuka pengguna tetap responsif.
Proses yang terlihat adalah melakukan pekerjaan yang saat ini diketahui oleh pengguna, sehingga mengakhiri proses tersebut akan memiliki dampak negatif yang nyata terhadap pengalaman pengguna. Suatu proses dianggap terlihat dalam kondisi berikut:Prosesdianggap terlihat dalam kondisi berikut:Proses menjalankan Activity yang dapat dilihat oleh pengguna di layar, tetapi tidak di latar depan (metode onPause()-nya telah dipanggil). Hal ini dapat terjadi, misalnya, jika Aktivitas latar depan ditampilkan sebagai dialog yang memungkinkan Aktivitas sebelumnya terlihat di belakangnya.
Proses memiliki Service yang berjalan sebagai layanan latar depan, melalui Service.startForeground() (yang meminta sistem memperlakukan layanan sebagai sesuatu yang diketahui pengguna, atau terlihat oleh pengguna).
Menghosting layanan yang digunakan sistem untuk fitur tertentu yang diketahui pengguna, seperti wallpaper animasi, layanan metode masukan, dll.
Jumlah proses yang berjalan pada sistem ini kurang dibatasi daripada proses latar depan, tetapi masih relatif terkendali. Proses ini dianggap sangat penting dan tidak akan diakhiri kecuali jika diperlukan untuk menjaga semua proses latar depan tetap berjalan.
Proses layanan adalah salah satu yang menyimpan Service yang telah dimulai dengan metode startService(). Meskipun proses ini tidak langsung terlihat oleh pengguna, proses ini umumnya melakukan hal-hal yang diperlukan pengguna (seperti upload atau download data jaringan latar belakang), sehingga sistem akan selalu menjaga proses tersebut tetap berjalan kecuali memori tidak cukup untuk mempertahankan semua latar depan dan proses yang terlihat.
Layanan yang telah berjalan lama (misalnya, 30 menit atau lebih) dapat didemosikan menjadi penting agar prosesnya dapat diteruskan ke daftar LRU yang tersimpan dalam cache yang dijelaskan berikutnya. Hal ini membantu menghindari situasi saat layanan yang berjalan sangat lama dengan kebocoran memori atau masalah lain menggunakan begitu banyak RAM sehingga mencegah sistem menggunakan proses cache yang efektif.
Proses yang tersimpan di dalam cache adalah salah satu yang saat ini tidak diperlukan, sehingga sistem bebas untuk kapan saja saat memori diperlukan di tempat lain. Dalam sistem yang bekerja secara normal, proses ini berjalan dengan satu-satunya proses yang terlibat dalam manajemen memori: sistem yang berjalan dengan baik yang selalu tersedia (untuk aplikasi yang paling efisien) kebutuhan. Hanya dalam situasi yang sangat kritis (dan yang tidak diinginkan) sistem akan dimulai pada tahap di mana semua proses yang disimpan dalam cache akan dihentikan dan harus memulai proses layanan.
Proses ini kerap berisi satu atau satu instance Aktivitas yang saat ini tidak dapat dilihat oleh pengguna (metode onStop() telah dipanggil dan beberapa ditampilkan). Jika sistem menerapkan siklus proses Aktivitas dengan benar (lihat aktivitas untuk detail selengkapnya), ketika sistem dimulainya proses tersebut tidak akan memengaruhi pengalaman saat pengguna kembali ke aplikasi: sistem dapat menampilkan status yang disimpan sebelumnya setelah terkait kembali dalam proses baru.
Proses ini disimpan dalam daftar pseudo-LRU, di mana proses terakhir pada daftar adalah yang pertama kali berakhirnya mendapatkan kembali memori. Kebijakan yang tepat untuk mengurutkan daftar ini adalah detail implementasi platform, tetapi umumnya akan mencoba untuk mempertahankan proses yang lebih berguna (proses menghosting aplikasi beranda pengguna, aktivitas terakhir yang dilihat, dll) sebelum jenis proses lainnya. Kebijakan lain untuk melanjutkan proses juga dapat diterapkan: batas penggunaan pada jumlah proses yang diizinkan, batas waktu proses dapat terus-menerus disimpan dalam cache, dll.
Komentar
Posting Komentar