Skip to content

Konsep Manajemen Proses Sistem Operasi Symbian

April 1, 2011

2.5 Manajemen Proses

Proses merupakan unit memori yang terproteksi, sedangkan Thread merupakan unit eksekusi. Satu proses tidak dapat mengakses secara langsung memori dari proses lain, kecuali dibuat memori yang global. Setiap aplikasi dan server di symbian mempunyai prosesnya sendiri-sendiri, tetapi user juga dapat membuat proses baru. Semua proses dapat mengakses share library dan sistem ROM. Dalam mode user, dapat dibuat 4 prioritas proses, yaitu:

  1. EPriorityLow=150
  2. EPriorityBackground=250
  3. EPriorityForeground=350
  4. EPriorityHigh=450

Prioritas tersebut digunakan untuk menghitung keseluruhan prioritas sebuah thread yang dibuat dalam proses. Developer dapat juga menggunakan nilai absolut prioritas dalam hal ini prioritas proses tidak digunakan. Ada 5 level prioritas yang tersedia untuk thread yang dieksekusi di mode user, yaitu:

  1. EpriorityMuchLess
  2. EpriorityLess
  3. EpriorityNormal
  4. EpriorityMore
  5. EPriorityMuchMore

Kernel mempunyai prioritas tertinggi untuk proses dan thread. Thread dijadwalkan berdasar pada prioritasnya atau round robin jika thread mempunyai prioritas yang sama. Penjadwalan bersifat preemptive yang berarti yang mempunyai prioritas tinggi dapat menginterupsi thread yang lebih rendah. Pada beberapa kasus preemptive multitasking tidak diperlukan, dan dapat digantikan dengan multitasking yang cooperative yaitu prinsip active object. Seperti telah disebutkan diatas ada dua mode eksekusi yaitu user mode dan kernel mode. Kernel mode mempunyai prioritas yang tertinggi dibandingkan proses dan thread dalam user mode. Kedua mode tersebut diatur dalam dua library yaitu EUser dan EKern. Kedua library tersebut menyediakan kumpulan servis-servis untuk aplikasi. EUser digunakan untuk menangani proses dan thread, manajemen memori, active object, dan sebagainya. EKern digunakan untuk mengakses device driver dan sebagainya.

2.6 Manajemen Memori

Setiap proses harus mempunyai setidaknya satu thread. Proses yang kosong tidak dapat dieksekusi, tetapi thread dapat dieksekusi. Thread yang baru dibuat dengan fungsi Create(), dimana prototipenya sebagai berikut:

  1. TInt Create ( const TDesC& aName, TThreadFunction aFunction, TInt
  2. aStackSize, TInt aHeapMinSize,TInt aHeapMaxSize,
  3. TAny *aPtr, TOwnerType aType=EOwnerProcess);

Untuk membuat thread diperlukan memori stack sebesar 8kB defaultnya, sedangkan untuk memori heap minimum 256Bytes sampai batas maksimum memori yang tersedia. Ketika thread dibuat, chunk memori baru dialokasikan untuk thread tersebut. Chunk merupakan area memori di virtual memori yang mempunyai alamat yang berdekatan. Secara fisik, chunk terdiri atas alokasi memori yang dibutuhkan tergantung pada arsitektur, 4kB jika pada arsitektur ARM. Bagian bawah dari chunk adalah stack dan diatasnya adalah heap. Stack selalu tumbuh kebawah, jadi tidak akan pernah mencapai memori heap. Heap dapat dishare antara thread dengan menggunakan versi fungsi Create() yang berbeda. Heap dan stack memainkan peranan yang berbeda dalam penyimpanan object yang dibuat dan data yang lain. Yang harus diperhatikan dalam penggunaan stack adalah stack mudah terjadi overflow. Semua alokasi di stack secara otomatis di hapus ketika tidak lagi dibutuhkan, namun untuk object yang dialokasikan di heap harus ada pointer untuk mengalokasikannya dan untuk menghapusnya. Class RHeap memberikan beberapa fungsi untuk menghitung banyaknya alokasi di heap atau menentukan keseluruhan yang teralokasi di heap. Semua object yang berada dalam heap harus mempunyai tipe class C, yang berarti berasal dari turunan kelas yang umum yaitu CBase. Semua yang berasal dari CBase dapat ditaruh dalam cleanup stack dan dihapus dengan fungsi PopAndDestroy(). Dapat juga digunakan User::Alloc() untuk melakukan alokasi di memori heap. Dikarenakan heap tidak secara otomatis dilakukan proses penghapusan, maka ada resiko heap akan menyebabkan memori leak. Untuk itu dalam Symbian OS digunakan cleanup stack untuk menyimpan variabel secara otomatis menangani penghapusannya sehingga tidak terjadi memori leak.

2.7 Manajemen I/O

Dalam permasalahan input dan output, baik itu berupa keyboard input, pointer input, dan I/O request yang lain, semua berjalan dalam mode asynchronous yang diberikan oleh asynchronous service providers. Symbian OS memberikan mekanisme yang mudah untuk menggunakan asynchronous service tersebut. Ada 2 level asynchronous yaitu: Low-level dan High-level asynchronous. Pada low-level, asynchronous service provider memberikan servis dengan fungsi request dan cancel. Status request akan disimpan kedalam request status, dan service provider akan memberikan signal bahwa request telah selesai dengan menggunakan thread request semaphore. Pada high-level, menggunakan active scheduler yang melakukan wait loop yang digunakan dalam multiple asynchronous, dan active object yang melakukan fungsi request dan cancel, sekaligus menangani penyelesaian permintaan.

2.8 Komunikasi

Ponsel tidak akan bermakna tanpa ada pertukaran informasi, untuk melakukan hal tersebut diperlukan suatu teknologi komunikasi, baik berupa teknologi telephony maupun teknologi pertukaran data yang lain. Struktur microkernel Symbian OS mempunyai efek terhadap arsitektur komunikasi. Service komunikasi harus melewati sistem server, yang melakukan penambahan atau pengurangan tergantung perangkat keras yang didukung oleh smartphone. Arsitektur komunikasi terdiri atas server komunikasi dan modul tambahan. Modul tambahan dapat ditambah dan dibuang kapanpun pada saat runtime tanpa harus melakukan rebooting OS. Berikut ini adalah arsitektur komunikasinya.

Leave a Comment

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: