MAKALAH MANAJEMEN PROSES


Nama : Fajar Noverdian
Nim : 10523467


POKOK BAHASAN :
·         LATAR BELAKANG
BAB 1  MEMORI
1.1    Pengikatan Alamat
1.2    Dinamic Loading
1.3    Dinamic Linking
1.4    Overlay
BAB 2  RUANG ALAMAT LOGIKA DAN FISIK
BAB 3  SWAPPING
BAB 4 ALOKASI BERURUTAN
            4.1 Single Partition Allocation
            4.2 Multiple Partition Allocation
            4.3 Fragmentasi

BAB 5  PAGING
            5.1 Konsep Dasar Paging
            5.2 Implementasi Sistem Paging
            5.3 Proteksi
            5.4 Multilevel Paging
            5.5  Shared Page

BAB 6 SEGMENTASI
BAB 7 HIRARKI MEMORI
         









LATAR BELAKANG
Memori adalah pusat dari operasi pada sistem komputer modern. Memori
adalah array besar dari word atau byte, yang disebut alamat. CPU mengambil instruksi
dari memory berdasarkan nilai dari program counter.

BAB 1 MEMORI
1.1  Pengikatan alamat (Address binding)
Pengikatan alamat adalah cara instruksi dan data (yang berada di disk sebagai
file yang dapat dieksekusi) dipetakan ke alamat memori. Sebagian besar sistem
memperbolehkan sebuah proses user (user process) untuk meletakkan di sembarang
tempat dari memori fisik.
Instruksi pengikatan instruksi dan data ke alamat memori dapat dilakukan pada
saat :

Compile time : Jika lokasi memori diketahui sejak awal, kode absolut dapat
dibangkitkan, apabila terjadi perubahan alamat awal harus dilakukan kompilasi
ulang. Misalnya : program format .com pada MS-DOS adalah kode absolut yang
diikat pada saat waktu kompilasi

Load time : Harus membangkitkan kode relokasi jika lokasi memori tidak diketahui
pada saat waktu kompilasi.

Execution time : Pengikatan ditunda sampai waktu eksekusi jika proses dapat
dipindahkan selama eksekusi dari satu segmen memori ke segmen memori lain.
Memerlukan dukungan perangkat keras untuk memetakan alamat (misalnya register
basis dan limit).

Gambar 1.1 langkah proses program user


1.2  Dinamic Loading

Untuk memperoleh utilitas ruang memori, dapat menggunakan dynamic loading.
Dengan dynamic loading, sebuah rutin tidak disimpan di memori sampai dipanggil.
Semua rutin disimpan pada disk dalam format relocatable load.

Mekanisme dari dynamic loading adalah program utama di-load dahulu dan
dieksekusi.

Keuntungan dari dynamic loading adalah rutin yang tidak digunakan tidak
pernah di-load. Skema ini lebih berguna untuk kode dalam jumlah besar diperlukan
untuk menangani kasus-kasus yang jarang terjadi seperti error routine. Dinamic
loading tidak memerlukan dukungan khusus dari sistem operasi. Sistem operasi hanya
perlu menyediakan beberapa rutin pustaka untuk implementasi dynamic loading.

1.3  Dinamic Linking

Konsep dynamic linking sama dengan dynamic loading. Pada saat loading, linking ditunda sampai waktu eksekusi. Terdapat kode kecil yang disebut stub digunakan untuk meletakkan rutin library di memori dengan tepat.

Dinamic linking biasanya digunakan dengan sistem library, seperti language
subroutine library. Tanpa fasilitas ini, semua program pada sistem perlu mempunyai
copy dari library language di dalam executable image.


1.4  Overlay

biasanya digunakan untuk memungkinkan sebuah proses mempunyai jumlah yang lebih
besar dari memori fisik daripada alokasi memori yang diperuntukkan. Ide dari overlay
adalah menyimpan di memori hanya instruksi dan data yang diperlukan pada satu
waktu. Jika intruksi lain diperlukan, maka instruksi tersebut diletakkan di ruang
memori menggantikan instruksi yang tidak digunakan lagi.

Overlay tidak membutuhkan dukungan khusus dari sistem operasi. User dapat
mengimplementasikannya secara lengkap menggunakan struktur file sederhana,
membaca dari file ke memori dan meloncat ke memori dan mengeksekusi instruksi read
yang lebih baru.
Penggunaan overlay terbatas untuk beberapa sistem yang mempunyai jumlah
memori fisik terbatas dan kekurangan dukungan H/W untuk teknik yang lebih lanjut.







BAB 2  RUANG ALAMAT LOGIKA DAN FISIK
Tujuan utama manajemen memori adalah konsep meletakkan ruang alamat logika ke
ruang alamat fisik.

Gambar 2.2: Overlay


Memory Manajement Unit (MMU) adalah perangkat keras yang memetakan
alamat virtual ke alamat fisik. Pada skema MMU, nilai register relokasi ditambahkan ke
setiap alamat yang dibangkitkan oleh proses user pada waktu dikirim ke memori.

Gambar : 2.3 Relokasi dinamis menggunakan register relokasi

merupakan skema yang membutuhkan dukungan perangkat keras.
Register basis disebut register relokasi. Nilai dari register relokasi ditambahkan ke
setiap alamat yang dibangkitkan oleh proses user pada waktu dikirim ke memori.
Program dapat membuat sebuah penunjuk ke lokasi 346, mengirimkan ke memory, memanipulasinya,
membandingkan dengan alamat lain, semua menggunakan alamat 346. Hanya ketika
digunakan sebagai alamat memory akan direlokasi secara relatif ke register basis.



































BAB  3  SWAPPING

Proses juga dapat ditukar (swap) sementara keluar memori ke backing store dan kemudian dibawa
kembali ke memori untuk melanjutkan eksekusi.

Backing store berupa disk besar dengan kecepatan tinggi yang cukup untuk
meletakkan copy dari semua memory image untuk semua user, sistem juga harus
menyediakan akses langsung ke memory image tersebut.

Gambar 3.1 Proses swapping

Jika proses mempunyai prioritas lebih tinggi datang dan meminta layanan, memori akan swap out proses dengan prioritas lebih rendah sehingga proses dengan prioritas lebih tinggi dapat di-load dan dieksekusi. Umumnya sebuah proses yang di-swap out akan menukar kembali ke ruang
memori yang sama dengan sebelumnya.

Bila CPU scheduler memutuskan untuk mengeksekusi proses, OS memanggil dispatcher. Dispatcher memeriksa untuk melihat apakah proses selanjutnya pada ready queue ada di memori. Jika tidak dan tidak terdapat cukup memori bebas, maka dispatcher swap out sebuah proses yang ada di memori dan swap in proses tersebut. Kemudian reload register ke keadaan normal. Teknik swapping yang sudah dimodifikasi ditemui pada beberapa system misalnya Linux, UNIX dan Windows.




BAB 4 ALOKASI BERURUTAN
Memori utama biasanya dibagi ke dalam dua partisi yaitu untuk..

Sistem operasi biasanya diletakkan pada alamat memori rendah dengan vektor
interupsi
Proses user yang diletakkan pada alamat memori tinggi.
Alokasi proses user pada memori berupa single partition allocation atau
multiple partition allocation.

4.1 Single Partition Allocation
Pada single partition allocation diasumsikan sistem operasi ditempatkan di
memori rendah dan proses user dieksekusi di memori tinggi. Kode dan data sistem
operasi harus diproteksi dari perubahan tak terduga oleh user proses. Proteksi dapat
dilakukan dengan menggunakan register relokasi (relocation register) dan register limit
(limit register).

Gambar 4.1 : Perangkat keras untuk register relokasi dan limit

4.2 Multiple Partition Allocation

Terdapat dua skema yaitu partisi tetap (fixed partition) dimana memori dibagi
dalam sejumlah partisi tetap dan setiap partisi berisi tepat satu proses. Jumlah partisi
terbatas pada tingkat multiprogramming. Digunakan oleh IBM OS/360 yang disebut
Multiprogramming with a Fixed number of Task (MFT). Skema yang kedua adalah
partisi dinamis (variable partition) merupakan MFT yang digeneralisasi yang disebut
Multiprogramming with a Variable number of Tasks (MVT). Skema ini digunakan
terutama pada lingkungan batch.
Lubang (hole) adalah blok yang tersedia di memori yang mempunyai ukuran berbeda.

Menggunakan MVT, terdapat beberapa lubang dengan ukuran berbeda. Bila
proses datang dan memerlukan memori, dicari dari lubang yang cukup untuk proses.
Dynamic storage-allocation dapat dilibatkan untuk memenuhi permintaan ukuran n dari
lubang yang bebas. Strategi yang digunakan meliputi :
First-fit : alokasi lubang pertama yang cukup untuk proses.
Best-fit : alokasi lubang terkecil yang cukup untuk proses. Strategi ini
memerlukan pencarian keseluruhan lubang, kecuali bila ukuran sudah terurut.
Worst-fit : alokasi lubang terbesar yang cukup untuk proses. Strategi ini
memerlukan pencarian keseluruhan lubang, kecuali disimpan berdasarkan urutan
ukuran.


4.3 Fragmentasi
Fragmentasi Eksternal terjadi pada situasi dimana terdapat cukup ruang memori
total untuk memenuhi permintaan, tetapi tidak dapat langsung dialokasikan karena tidak
berurutan.
Fragmentasi Internal terjadi pada situasi dimana memori yang dialokasikan
lebih besar dari pada memori yang diminta tetapi untuk satu partisi tertentu hanya
berukuran kecil sehingga tidak digunakan. Pada multiple partition, fragmentasi internal
mungkin terjadi pada situasi berikut. Misalnya terdapat lubang 18464 byte, dan proses
meminta 18462 byte seperti pada Gambar 7-9. Alokasi dilakukan sesuai permintaan
maka sisa lubang 2 byte.

Solusi untuk masalah fragmentasi eksternal adalah dengan teknik pemadatan
(compaction) yaitu memadatkan sejumlah lubang kosong menjadi satu lubang besar
sehingga dapat digunakan untuk proses.






BAB 5 PAGING
Konsep Dasar Paging
Paging merupakan kemungkinan solusi untuk permasalahan fragmentasi
eksternal dimana ruang alamat logika tidak berurutan; mengijinkan sebuah proses
dialokasikan pada memori fisik yang terakhir tersedia. Memori fisik dibagi ke dalam
blok-blok ukuran tetap yang disebut frame. Memori logika juga dibagi ke dalam blokblok
dg ukuran yang sama yang disebut page.

Setiap alamat dibangkitkan oleh CPU dengan membagi ke dalam 2 bagian
yaitu :
Page number (p) digunakan sebagai indeks ke dalam table page (page table).
Page table berisi alamat basis dari setiap page pada memori fisik.

Page offset (d) mengkombinasikan alamat basis dengan page offset untuk
mendefinisikan alamat memori fisik yang dikirim ke unit memori.

Gambar  5.1 Arsitektur sistem paging
Pada skema paging, tidak terjadi fragmentasi eksternal, karena “sembarang”
frame dapat dialokasikan ke proses yang memerlukannya. Tetapi beberapa fragmentasi
internal masih mungkin terjadi. Hal ini dikarenakan frame dialokasikan sebagai unit
dan jika kebutuhan memori dari proses tidak menemukan page, maka frame terakhir
mungkin tidak dialokasikan penuh.


Alokasi page pada frame bebas dapat dilihat pada Gambar 5.2

Gambar 5.2 : Alokasi frame: (a) Sebelum alokasi (b) Setelah alokasi
user memandang memori sebagai bagian terpisah dari memorifisik aktual. Program user memandang memori sebagai satu ruang berurutan yang hanya berisi program user tersebut.

Implementasi Sistem Paging

Pointer ke tabel page disimpan dengan nilai register lainnya dari PCB.
Pada dasarnya terdapat 3 metode yang berbeda untuk implementasi tabel page :

1. Tabel page diimplementasikan sebagai kumpulan dari “dedicated” register.
Register berupa rangkaian logika berkecepatan sangat tinggi untuk efisiensi translasi

2. Tabel page disimpan pada main memori dan menggunakan page table base registe
(PTBR) untuk menunjuk ke tabel page yang disimpan di main memori.
Penggunakan memori untuk mengimplementasikan tabel page akan memungkinkan
tabel page sangat besar (sekitar 1 juta entry).

3. Menggunakan perangkat keras cache yang khusus, kecil dan cepat yang disebut
associative register atau translation look-aside buffers (TLBs). Merupakan solusi
standar untuk permasalahan penggunaan memori untuk implementasi tabel page.
Sekumpulan associative register berupa memori kecepatan tinggi. Setiap register
terdiri dari 2 bagian yaitu key dan value.




Mekanisme penggunaan associative register (Gambar 7-15) adalah sebagai
berikut :
Associative register berisi hanya beberapa entry tabel page (sampai dengan ukuran
maksimum).
Jika memori logika dibangkitkan oleh CPU, nomor page berupa sekumpulan
associative register yang berisi nomor page dan nomor frame yang
berkorespondensi.
Jika nomor page ditemukan pada associative register, nomor frame segera tersedia
dan digunakan untuk mengakses memori.
Sebaliknya, jika nomor page tidak ditemukan pada associative register, acuan
memori ke tabel page harus dibuat.
Jika nomor frame tersedia, maka dapat menggunakannya untuk mengakses ke
memori yang tepat.
Kemudian ditambahkan nomor page dan nomor frame ke associative register
sehingga akan mudah ditemukan pada acuan berikutnya.
Setiap kali tabel page baru dipilih, TLB harus dihapus untuk menjamin eksekusi
proses berikutnya tidak menggunakan informasi translasi yang salah.

Gambar 5.3 :Perangkat keras paging dengan TLB










Biasanya bit proteksi disimpan pada tabel page. Satu bit mendifinisikan satu page untuk “read and write” atau “read-only”. Level proteksi yang lebih baik dapat dicapai dengan menambah jumlah bit yang digunakan.
Gambar 5.4 :Valid invalid bit pada tabel page
Pada tabel page diberi tambahan “valid-invalid” bit seperti pada Gambar 7-16.
Nilai “valid” mengindikasikan bahwa page berada pada ruang alamat logika yang
berarti merupakan page yang legal (valid). Nilai “invalid” mengindikasikan bahwa
page tidak berada pada ruang alamat logika atau page yang illegal (invalid). Sistem
operasi mengeset bit ini untuk setiap page untuk mengijinkan atau tidak mengakses
page.

Multilevel Paging
Model multilevel paging digunakan pada sistem yang mempunyai ruang alamat
logika yang sangat besar yaitu antara 232 s/d 264. Pada sistem ini, tabel page akan
menjadi sangat besar.
Untuk sistem dengan ruang alamat logika 32 bit dapat dipecahkan menggunakan
skema two level paging. Pada skema ini alamat logika dibagi menjadi 20 bit untuk
nomor page dan 12 bit untuk page offset.




Tetapi jika menggunakan cache dengan hit ratio 98%, effective access time menjadi 0.98 X 120 + 0.02 X 420.
Gambar 5.5 :Skematabel page pada two level paging
Gambar 5.6:Skematranslasi alamat pada two level paging

5.5  Shared Page
Kode dan data pribadi (private) untuk setiap proses diletakkan terpisah dari
kode dan data pribadi proses lain. Page untuk kode dan data pribadi dapat diletakkan di
sembarang tempat pada ruang alamat logika.
Gambar 5.7 Shared page




















BAB 6 SEGMENTASI
Segmentasi adalah skema manajemen memori yang memungkinkan user untuk melihat memori tersebut. Ruang alamat logika adalah kumpulan segmen. Setiap segmen mempunyai nama dan panjang. Spesifikasi alamat berupa nama segmen dan offset. Segment diberi nomor dan disebut dengan nomor segmen (bukan nama segmen) atau segment number. Segmen dibentuk secara otomatis oleh compiler.

a. Konsep Dasar Segmentasi
Konsep segmentasi adalah user atau programmer tidak memikirkan sejumlah rutin program yang dipetakan ke main memori sebagai array linier dalam byte tetapi memori dilihat sebagai kumpulan segmen dengan ukuran berbeda-beda, tidak perlu berurutan diantara segment tersebut. Sebuah program adalah kumpulan segmen. Suatu segmen adalah unit logika seperti program utama, prosedur, fungsi, metode, obyek, variabel lokal, variabel global, blok umum, stack, tabel simbol, array dan lain-lain

b. Arsitektur Segmentasi
Alamat logika terdiri dari dua bagian yaitu nomor segmen (s) dan offset (d) yang dituliskan dengan .
Pemetaan alamat logika ke alamat fisik menggunakan tabel segmen (segment table), terdiri dari :
o Segmen basis (base) berisi alamat fisik awal
o Segmen limit merupakan panjang segmen Seperti tabel page, tabel segmen dapat berupa register atau memori berkecepatan tinggi.
o Segment-table base register (STBR) digunakan untuk menyimpan alamat yang menunjuk ke segment table.
o Segment-table length register (STLR) digunakan untuk menyimpan nilai jumlah segmen yang digunakan program.
o Untuk alamat logika (s, d), pertama diperiksa apakah segment number s legal (s < STLR), kemudian tambahkan segment number ke STBR, alamat hasil (STBR + s) ke memori dari segment table.

c. Proteksi dan Sharing
Proteksi bit dapat diletakkan pada tabel segmen. Segmen instruksi dapat diproteksi sebagai segmen read-only atau execute only, segmen data dapat diproteksi sebagai segmen read-write. Pemetaan pada perangkat keras memory akan memeriksa bit proteksi untuk mencegah akses yang illegal.

















HIRARKI MEMORY



MEMORY SEKUNDER
 
MEMORY UTAMA
 
CHACE MEMRY
 
       










 Gambar 1. Hirarky Memory

  1. JENIS-JENIS PENGELOLAAN MEMORY

    1. Pengelolaan memory untuk monoprogramming
    2. Pengelolaan memory  untuk multiprogramming

1). Sistem partisi statis
2). Sistem partisi dinamis
3). Sistem memory maya

  1. Penjelasan masing sistem pengelolaan memory

A.      Pengolalaan Memory untuk Monoprogramming

Bila program komputer yang dijalankan hanya satu jenis selama proses berlangsung maka dikatakan mode kerja komputer itu adalah monoprogramming. Selama komputer itu bekerja maka memory RAM seluruhnya di kuasai oleh program tersebut. Jadi  RAM tidak dapat di masuki oleh program lain. Mode serupa ini di temui pada komputer berbasis DOS.

Untuk lebih jelasnya bagaimamana cara mengelola memory untuk monoprogramming , perhatikan gambar dibawah . Penempatan program di memory  di atur sedemikain rupa sehingga :
1.       BIOS selalu di ROM (BIOS)
2.       Sistem Operasi  di RAM bawah (alamat rendah)
3.       Program Aplikasi di RAM tengah (alamat sesudah OS terakhir)
4.       Data Sementara di RAM atas (alamat sesudah Aplikasi terakhi).


ROM BIOS
 
 









   Gambar 2.  Susunan Program di Dalam memory




Kita lihat ketika komputer mula-mula dinyalakan maka proses yang dibaca pertama kali adalah apa yang tertulis di dalam ROM. Setelah semua perintah di adalam ROM BIOS selesai dibaca maka komputer meminta kita memasukkan DOS ke dalam RAM-nya.Ketika DOS dibaca maka diletakkan sebagian dari program DOS yang terpenting saja ke dalam RAM, seperti : COMMAND.COM  dan INTERNAL COMMAND. Sedangkan program DOS yang lain masih tetap di dalam disk dan apabila kita perlukan dapat di eksekusi. Hal itu berguna untuk mrnjaga agar RAM tidak penuh oleh Sistem Operasi saja.

Bila sistem operasi telah selasai dimuat maka tampillah prompt di layar monitor, dan itu adalah tanda bahwa komputer siap menerima program aplikasi. Letakkan disk yang berisi program aplikasi pada diskdrive yang aktif lalu eksekusi , sehingga program itu termuat  seluruhnya ke RAM. Dengan demikian program aplikasi siap digunakan menurut semestinya.

Ketika kita bekerja dengan program aplikasi tasdi maka kita akan menghasilkan data. Data itu akan di simpan sementara di RAM yang masih tersisa. Data yang disimpan di RAM bersifat voletile, artinya data hanya bisa bertahan selama catudaya komputer masih ON. Untuk berjaga-jaga biasakan menyimpan data ke disk dalam jangka waktu yang tidak terlalu lama, misalnya setiap 5 menit sekali. Selain menjaga data agar tidak amblas menyimpan ke disk bertujuan juga untuk mengosongkan RAM agar tidak cepat penuh.

Didalam sistem  juga dapat kita lihat bahwa sistem operasi terletak berdekatan dengan program lain di RAM  sehingga kemungkinan sistem operasi ter ganggu atau terubah oleh proses yang sedang berjalan sangat besar .Hal itu tidak boleh terjadi.Untuk mencegah terganggu sitem operasi tersebut maka alamat tertinggi dari sistem operasi dletakkan pada register batas dalam CPU. Jika ada proses yang mengacu ke alamat itu atau yang lebih rendah dari itu maka proses di hentikan dan program akan menampilkan pesan kesalahan.

B.      Manajemen Memory Untuk Multiprogramming
1). Manajemen Memory Partisi Statis

Untuk melakukan tugas multiprogramming pada sistem komputer maka setiap program yang sedang dijalankan harus di muat ke dalam memory, tetapi antara program yang satu satu dengan yag lain tidak boleh saling mempengaruhi. Untuk menjaga setiap  program yang sedang berjalan tidak saling mempengaruhi maka masing-masing program akan di tempatkan pada partisi yang berbeda di dalam memory. Ada berbagai cara mempartisi memory tetapi yang paling mudah dan efisien adalah membuat partisi berbeda mulai dari  ukuran kecil sampai ukuran besar. Program yang akan di jalankan akan  di tempatkan pada partisi paling kecil yang dapat menampungnya. Contoh partisi statis memory digamabar sebagai berikut :
 

                                                                    100 Kb








                                  
                                                                      50Kb 
                                                         
                                                                       75 Kb
P2
 
 

P1
 
                                                                       100 Kb
P3
 
 


                                                                      200 Kb
P4
 
 



P5
 
                                                                      150 Kb
 


 Program masuk

Gambar 3.  Proses Antrian pada partisi Statis


Program yang akan dijalankan dimasukkan ke memory dengan cara antrian sehingga menempati satu partisi yang mungkin belum cocok. Karena program kecil dapat saja menempati partisi besar sehingga banyak memory yang tidak terpakai di dalam partisinya. Atau program besar tidak dapat di muat karena partisi yang  tersisa terlalu kecil untuknya.  Untuk mengatasi hal itu maka program kecil yang yangb telah menempati partisi besar akan di swap ke partisi yang lebih kecil, sehingga partisi yang besar itu dapat di pakai untuk program yang lebih besar.
Walaupun sudah diusahakan penempatan program pada partisi yang paling efisien masih saja terdapat bolong-bolong memory yang tidak termamfaatkan, yang disebut dengan fragmentasi. Bila ada bolong memory di dalam partisi yang tidak habis terpakai oleh program pada partsisi itu maka dikatakan fragmentasi internal  . Tetapi bila bolong memory itu berupa satu partisi yang karena ukurannya lebih kecil dari program yang kan menempatinya, sehingga partisi itu tidak bisa di muati program maka disebut  Fragmentasi Eksternal. Untuk mencegah terjadinya fragmentasi eksternal maka dapat dilakukan dengan swap
2. Manejemen memory Partisi Dinamis
Untuk mengurangi fragmentasi dalam memory maka dilakukan partisi dinamis, dimana setiap program yang akan dimasukkan ke mamory akan dibuatkan partisi yang sesuai dengannya. Begitu juga apabila ada program yang tidak berguna akan diluarkan dari memory dn memory yang ditinggal akan digabungkan dengan memory kosong lainnya. Begitu seterusya sehingga tidak ada bagian memory yang kosong yang tidak dapat digunakan. Proses penggabungan memory yang tidak terpakai karena programnya sudah selesai bekerja, sehingga mendapatkan memory bebas lebih besar dinamakan pemadatan memory (memory compaction).






Partisi 5
 
Partisi 3
 
Text Box: Bebas
Text Box: Bebas
Sistem
operasi
 

Partisi 5
 

Bebas
 
Partisi 3
 
Bebas
 
Proses 1
 
Sistem
operasi
 
Pratisi 1
 
                                                                                                                   









Gambar 3. Proses Pemadatan Memory







Sumber : www. mhs.omahijo.net
              http://faesabila.blogspot.com
              www.smknperkapalan.net



penyusun
fajarnoverdi.blogspot.com


SILAHKAN COPY JIKA ARTIKEL INI MENARIK NAMUN HARAP CANTUMKAN SUMBERNYA




Artikel terkait:

{ 0 komentar... read them below or add one }

Poskan Komentar

terima kasih telah berkunjung sobat.
Silahkan komentar,kritik dan sarannya
setidaknya tegur sapa.heheh