Kamis, 21 November 2013

      KONSEP MANAJEMEN PROSES


Dalam kegiatannya sehari-hari, sistem operasi memiliki sebuah mekanisme proteksi untuk memastikan dirinya, semua program yang berjalan, dan data-data penggunanya berjalan dengan baik. Untuk melakukan hal tersebut, sistem operasi memiliki dua jenis ( mode) operasi yang saling terpisah. Dua operasi tersebut, yaitu user mode, eksekusi program dikendalikan oleh pengguna, dan kernel mode, eksekusi program dikendaikan oleh sistem operasi, dinamakan dual-mode operation.
Dual-mode operation diimplementasikan pada arsitektur perangkat keras. Sebuah bit yang disebut mode bitditambahkan ke perangkat keras untuk menunjukkan mode operasi saat itu: 0 untuk kernel modedan 1 untuk user mode.
Dengan adanya dual-mode operation, eksekusi sebuah program/proses bisa dibedakan sumbernya, apakah dieksekusi oleh sistem operasi atau dieksekusi oleh pengguna. Hal ini akan sangat berguna dalam berjalannya sistem operasi.
Selain itu, sistem operasi memiliki sebuah mekanisme untuk melindungi prosesor dari berbagai macam program yang berjalan. Bayangkan jika ada sebuah proses mengalami infinite loop. Tentu saja prosesor akan terus menerus melayani program itu dan menghambat proses lainnya yang akan dieksekusi prosesor, dan hal ini bisa dipastikanakan mengurangi kinerja dari komputer.
Walau dua proses dapat dihubungkan dengan program yang sama, program tersebut dianggap dua urutan eksekusi yang berbeda. Sebagai contoh, beberapa pengguna dapat menjalankan copy yang berbeda pada mail program, atau pengguna yang sama dapat meminta banyak copy dari program editor. Tiap-tiap proses ini adakah proses yang berbeda dan walau bagian tulisan-text adalah sama, data section bervariasi. Juga adalah umum untuk memiliki proses yang menghasilkan banyak proses begitu ia bekerja.

Manajemen Proses
Proses adalah sebuah program yang sedang dieksekusi. Sedangkan program adalah kumpulan instruksi yang ditulis ke dalam bahasa yang dimengerti sistem operasi. Sebuah proses membutuhkan sejumlah sumber daya untuk menyelesaikan tugasnya. Sumber daya tersebut dapat berupa CPU time, alamat memori, berkas-berkas, dan perangkat-perangkat M/K. Sistem operasi mengalokasikan sumber daya-sumber daya tersebut saat proses itu diciptakan atau sedang diproses/dijalankan. Ketika proses tersebut berhenti dijalankan, sistem operasi akan mengambil kembali semua sumber daya agar bisa digunakan kembali oleh proses lainnya.
Sistem operasi bertanggung jawab atas aktivitas-aktivitas yang berkaitan dengan manajemen proses seperti:
  • Membuat dan menghapus proses pengguna dan sistem proses. Sistem operasi bertugas mengalokasikan sumber daya yang dibutuhkan oleh sebuah proses dan kemudian mengambil sumber daya itu kembali setelah proses tersebut selesai agar dapat digunakan untuk proses lainnya.
  • Menunda atau melanjutkan proses. Sistem operasi akan mengatur proses apa yang harus dijalankan terlebih dahulu berdasarkan berdasarkan prioritas dari proses-proses yang ada. Apa bila terjadi 2 atau lebih proses yang mengantri untuk dijalankan, sistem operasi akan mendahulukan proses yang memiliki prioritas paling besar.
  • Menyediakan mekanisme untuk proses sinkronisasi. Sistem operasi akan mengatur jalannya beberapa proses yang dieksekusi bersamaan. Tujuannya adalah menghindarkan terjadinya inkonsistensi data karena pengaksesan data yang sama, juga untuk mengatur urutan jalannya proses agar setiap proses berjalan dengan lancar
  • Menyediakan mekanisme untuk proses komunikasi. Sistem operasi menyediakan mekanisme agar beberapa proses dapat saling berinteraksi dan berkomunikasi (contohnya berbagi sumber daya antar proses) satu sama lain tanpa menyebabkan terganggunya proses lainnya.
  • Menyediakan mekanisme untuk penanganan deadlockDeadlock adalah suatu keadaan dimana sistem seperti terhenti karena setiap proses memiliki sumber daya yang tidak bisa dibagi dan menunggu untuk mendapatkan sumber daya yang sedang dimiliki oleh proses lain. Saling menunggu inilah yang disebut deadlock(kebuntuan). Sistem operasi harus bisa mencegah, menghindari, dan mendeteksi adanya deadlock. Jika deadlock terjadi, sistem operasi juga harus dapat memulihkan kondisi sistemnya.
Manajemen Memori Utama
Sistem operasi memiliki tugas untuk mengatur bagian memori yang sedang digunakan dan mengalokasikan jumlah dan alamat memori yang diperlukan, baik untuk program yang akan berjalan maupun untuk sistem operasi itu sendiri. Tujuan dari manajemen memori utama adalah agar utilitas CPU meningkat dan untuk meningkatkan efisiensi pemakaian memori.
Memori utama atau lebih dikenal sebagai memori adalah sebuah array yang besar dari word atau byte yang ukurannya mencapai ratusan, ribuan, atau bahkan jutaan. Setiap word atau byte mempunyai alamat tersendiri. Memori utama berfungsi sebagai tempat penyimpanan instruksi/data yang akses datanya digunakan oleh CPU dan perangkat M/K. Memori utama termasuk tempat penyimpanan data yang yang bersifat volatile(tidak permanen), yaitu data akan hilang kalau komputer dimatikan.
Sistem komputer modern memiliki sistem hirarki memori, artinya memori yang ada di komputer disusun dengan tingkatan kecepatan dan kapasitas yang berbeda. Memori yang memiliki kecepatan sama dengan kecepatan prosesor memiliki kapasitas yang kecil, berkisar hanya dari ratusan KB hingga 4 MB dengan harga yang sangat mahal. Sedangkan memori utama yang kecepatannya jauh di bawah kecepatan prosesor memiliki kapasitas yang lebih besar, berkisar dari 128 MB hingga 4 GB dengan harga yang jauh lebih murah. Sistem hirarki memori ini memiliki tujuan agar kinerja komputer yang maksimal bisa didapat dengan harga yang terjangkau.

Manajemen Sistem Berkas

File atau berkas adalah representasi program dan data yang berupa kumpulan informasi yang saling berhubungan dan disimpan di perangkat penyimpanan. Sistem berkas ini sangatlah penting, karena informasi atau data yang disimpan dalam berkas adalah sesuatu yang sangat berharga bagi pengguna. Sistem operasi harus dapat melakukan operasi-operasi pada berkas, seperti membuka, membaca, menulis, dan menyimpan berkas tersebut pada sarana penyimpanan sekunder. Oleh karena itu, sistem operasi harus dapat melakukan operasi berkas dengan baik.
Sistem operasi melakukan manajemen sistem berkas dalam beberapa hal:
  • Pembuatan berkas atau direktori. Berkas yang dibuat nantinya akan diletakkan pada direktori-direktori yang diinginkan pada sistem berkas. Sistem operasi akan menunjukkan tempat dimana lokasi berkas atau direktori tersebut akan diletakkan. Setelah itu, sistem operasi akan membuat entri yang berisi nama berkas dan lokasinya pada sistem berkas.
  • Penghapusan berkas atau direktori. Sistem operasi akan mencari letak berkas atau direktori yang hendak dihapus dari sistem berkas, lalu menghapus seluruh entri berkas tersebut, agar tempat dari berkas tersebut dapat digunakan oleh berkas lainnya.
  • Pembacaan dan menulis berkas. Proses pembacaan dan penulisan berkas melibatkan pointer yang menunjukkan posisi dimana sebuah informasi akan dituliskan di dalam sebuah berkas.
  • Meletakkan berkas pada sistem penyimpanan sekunder. Sistem operasi mengatur lokasi fisik tempat penyimpanan berkas pada sarana penyimpanan sekunder

Manajemen Sistem M/K ( I/O)

Pekerjaan utama yang paling sering dilakukan oleh sistem komputer selain melakukan komputasi adalah Masukan/Keluaran (M/K). Dalam kenyataannya, waktu yang digunakan untuk komputasi lebih sedikit dibandingkan waktu untuk M/K. Ditambah lagi dengan banyaknya variasi perangkat M/K sehingga membuat manajemen M/K menjadi komponen yang penting bagi sebuah sistem operasi. Sistem operasi juga sering disebut device manager, karena sistem operasi mengatur berbagai macam perangkat ( device).
Fungsi-fungsi sistem operasi untuk sistem M/K:
  • Penyanggaan ( buffering). Menampung data sementara dari/ke perangkat M/K
  • Penjadwalan ( scheduling). Melakukan penjadualan pemakaian M/K sistem supaya lebih efisien.
  • Spooling. Meletakkan suatu pekerjaan program pada penyangga, agar setiap perangkat dapat mengaksesnya saat perangkat tersebut siap.
  • Menyediakan driver perangkat yang umumDriver digunakan agar sistem operasi dapat memberi perintah untuk melakukan operasi pada perangkat keras M/K yang umum, seperti optical drive, media penyimpanan sekunder, dan layar monitor.
  • · Menyediakan driver perangkat yang khusus. Driver digunakan agar sistem operasi dapat memberi perintah untuk melakukan operasi pada perangkat keras M/K tertentu, seperti kartu suara, kartu grafis, dan motherboard

Manajemen Penyimpanan Sekunder

Sarana penyimpanan sekunder memiliki ciri-ciri umum sebagai berikut:
  1. Non volatile(tahan lama). Walaupun komputer dimatikan, data-data yang disimpan di sarana penyimpanan sekunder tidak hilang. Data disimpan dalam piringan-piringan magnetik.
  2. Tidak berhubungan langsung dengan bus CPU. Dalam struktur organisasi komputer modern, sarana penyimpanan sekunder terhubung dengan northbridgeNorthbridge yang menghubungkan sarana penyimpanan sekunder pada M/K dengan bus CPU.
  3. Lambat. Data yang berada di sarana penyimpanan sekunder memiliki waktu yang lebih lama untuk diakses ( read/write) dibandingkan dengan mengakses di memori utama. Selain disebabkan olehbandwidth bus yang lebih rendah, hal ini juga dikarenakan adanya mekanisme perputaran head dan piringan magnetik yang memakan waktu.
  4. Harganya murahPerbandingan harga yang dibayar oleh pengguna per byte data jauh lebih murah dibandingkan dengan harga memori utama.
Sarana penyimpanan sekunder memiliki fungsi-fungsi sebagai berikut:
  1. Menyimpan berkas secara permanenData atau berkas diletakkan secara fisik pada piringan magnet dari disk, yang tidak hilang walaupun komputer dimatikan ( non volatile)
  2. Menyimpan program yang belum dieksekusi prosesor. Jika sebuah program ingin dieksekusi oleh prosesor, program tersebut dibaca dari disk, lalu diletakkan di memori utama komputer untuk selanjutnya dieksekusi oleh prosesor menjadi proses.
  3. Memori virtual. Adalah mekanisme sistem operasi untuk menjadikan beberapa ruang kosong dari disk menjadi alamat-alamat memori virtual, sehingga prosesor bisa menggunakan memorivirtual ini seolah-olah sebagai memori utama. Akan tetapi, karena letaknya di penyimpanan sekunder, akses prosesor ke memori virtual menjadi jauh lebih lambat dan menghambat kinerja komputer.
Sistem operasi memiliki peran penting dalam manajemen penyimpanan sekunder. Tujuan penting dari manajemen ini adalah untuk keamanan, efisiensi, dan optimalisasi penggunaan sarana penyimpanan sekunder.
Tahap-tahap penciptaan proses
Penciptaan proses dapat disebabkan beragam sebab. Penciptaan proses meliputi beberapa tahap :
1. Beri satu identifier unik ke proses baru. Isian baru ditambahkan ke tabel proses utama yang berisi satu isian perproses.
2. Alokasikan ruang untuk proses.
3. PCB harus diinisialisasi.
4. Kaitan-kaitan antar tabel dan senarai yang cocok dibuat.
5. Bila diperlukan struktur data lain maka segera dibuat struktur data itu.
Status Proses
Saat proses dieksekusi maka setiap proses akan mengalami perubahan status / kondisi. Jika dikelompokkan, maka perubahan status proses ada lima tahapan yaitu :
  1. New yaitu proses yang sedang dibuat.
  2. Running yaitu proses yang dapat dieksekusi karena CPU tidak ada tugas atautugas selesai.
  3. Ready yaitu proses menuggu jatah waktu dari processor.
  4. Waiting yaitu proses sedang menunggu beberapa event.
  5. Terminated yaitu proses yang sudah selesai dieksekusi.

Penjadwalan Proses

Ada tujuh criteria penjadwalan proses pada system operasi, yaitu sebagai berikut :
  1. CPU Utilizatio, Kita ingin menjaga CPU sesibuk mungkin. CPU utilization akan mempunyai range dari 0 sampai 100 persen. Di sistem yang sebenarnya ia mempunyai range dari 40 sampai 100 persen.
  2. Throughput, Salah satu ukuran kerja adalah banyaknya proses yang diselesaikan per satuan waktu. Jika kita mempunyai beberapa proses yang sama dan memiliki beberapa algoritma penjadwalan yang berbeda, throughput bisa menjadi salah satu kriteria penilaian, dimana algoritma yang menyelesaikan proses terbanyak mungkin yang terbaik.
  3. Turnaround Time, Dari sudut pandang proses tertentu, kriteria yang penting adalah berapa lama untuk mengeksekusi proses tersebut. Memang, lama pengeksekusian sebuah proses sangat tergantung dari hardware yang dipakai, namun kontribusi algoritma penjadwalan tetap ada dalam lama waktu yang dipakai untuk menyelesaikan sebuah proses. Misal kita memiliki sistem komputer yang identik dan proses-proses yang identik pula, namun kita memakai algoritma yang berbeda, algoritma yang mampu menyelesaikan proses yang sama dengan waktu yang lebih singkat mungkin lebih baik dari algoritma yang lain. Interval waktu yang diijinkan dengan waktu yang dibutuhkan untuk menyelesaikan sebuah proses disebut turnaround time. Turnaround time adalah jumlah periode untuk menunggu untuk dapat ke memori, menunggu di ready queue, eksekusi CPU, dan melakukan operasi M/K.
  4.  Waiting Time, Algoritma penjadwalan CPU tidak mempengaruhi waktu untuk melaksanakan proses tersebut atau M/K, itu hanya mempengaruhi jumlah waktu yang dibutuhkan proses di antrian ready. Waiting time adalah jumlah waktu yang dibutuhkan proses di antrian ready.
  5.  Response Time, Di sistem yang interaktif, turnaround time mungkin bukan waktu yang terbaik untuk kriteria. Sering sebuah proses dapat memproduksi output di awal, dan dapat meneruskan hasil yang baru sementara hasil yang sebelumnya telah diberikan ke pengguna. Ukuran lain adalah waktu dari pengiriman permintaan sampai respon yang pertama diberikan. Ini disebut response time, yaitu waktu untuk memulai memberikan respon, tetapi bukan waktu yang dipakai output untuk respon tersebut.
  6.  Fairness, Suatu algoritma harus memperhatikan pengawasan nilai prioritas dari suatu proses (menghindari terjadinya starvation CPU time).
  7.  Efisiensi, Rendahnya overhead dalam context switching, penghitungan prioritas dan sebagainya menentukan apakah suatu algoritma efisien atau tidak.
Process Control Block (PCB)
Sistem operasi dalam melaksanakan tugas pengendalian dan pelayanan proses (sebagai manajer dan pelayan) terhadap kerja sistem komputer memerlukan sejumlah informasi yang akurat. Informasi yang diperlukan sistem operasi tersedia dalam bentuk Process Control Block (PCB). Informasi dalam PCB dikelompokkan dalam tiga macam :
  1. Informasi identifikasi proses yaitu identifikasi proses yang berkaitan dengan identitas proses yang unik. Identifikasi proses yang menciptakan identifikasi pemakai
  2. Informasi status pemroses yaitu informasi tentang isi register yang berisi data saat running. Register yang digunakan (AX,BX,CX,EAX,EBX). Register kendali dan status (program counter, PSW). Pointer stack
  3. Informasi kendali proses yaitu informasi yang diperluakan sistem operasi untuk manajemen proses. Informasi penjadwalan dan status [ prioritas dan kejadian ] manajemen memori.

Rabu, 13 November 2013

PROSES DAN MANAJEMEN PROSES

DEFINISI PROSES
  • Merupakan konsep pokok dalam sistem operasi, sehingga masalah manajemen proses adalah masalah utama dalam perancangan sistem operasi.
  • Proses adalah program yang sedang dieksekusi.
  • Proses adalah unit kerja terkecil yang secara individu memiliki sumber daya dan dijadwalkan oleh sistem operasi.
 KONSEP PROSES DI LINUX Setiap kali instruksi diberikan pada  Linux shell, maka kernel akan menciptakan sebuah proses-id.  Proses ini disebut juga dengan terminology Unix sebagai sebuah Job.  Proses Id (PID) dimulai dari 0, yaitu proses INIT, kemudian  diikuti oleh proses berikutnya (terdaftar pada /etc/inittab).   Beberapa tipe proses : Foreground Proses yang diciptakan oleh pemakai  langsung pada terminal (interaktif, dialog)Batch Proses yang dikumpulkan dan dijalankan secara sekuensial (satu persatu). Prose Batch tidak diasosiasikan (berinteraksi) dengan terminal.Daemon Proses yang menunggu permintaan (request) dari proses lainnya dan menjalankan tugas sesuai dengan permintaan tersebut.  Bila tidak ada request, maka program ini akan berada dalam kondisi “idle” dan tidak menggunakan waktu hitung CPU.  Umum nya nama proses daemon di UNIX berakhiran d, misalnya inetd, named, popd dllSINYAL Proses dapat mengirim dan menerima sinyal dari dan ke proses lainnya. Proses mengirim sinyal melalui instruksi “kill” dengan formatkill [-nomor sinyal] PIDNomor sinyal : 1 s/d maksimum nomor sinyal yang didefinisikan system Standar nomor sinyal yang terpenting adalah :MENGIRIM SINYAL Mengirim sinyal adalah satu alat komunikasi antar proses, yaitu memberitahukan proses yang sedang berjalan bahwa ada sesuatu yang harus dikendalikan.  Berdasarkan  sinyal yang dikirim ini maka proses dapat bereaksi dan administrator/programmer dapat menentukan reaksi tersebut. Mengirim sinyal menggunakan instruksikill [-nomor sinyal] PIDSebelum mengirim sinyal PID proses  yang akan dikirim harus diketahui terlebih dahulu.MENGONTROL PROSES PADA SHELLShell menyediakan fasilitas job control yang memungkinkan mengontrol beberapa job atau proses yang sedang berjalan pada waktu yang sama. Misalnya bila melakukan pengeditan file teks dan ingin melakukan interrupt pengeditan untuk mengerjakan hal lainnya. Bila selesai, dapat kembali ke editor dan meneruskan mengedit.Job bekerja pada foreground atau background. Pada foreground hanya diperuntukkan untuk satu job pada satu waktu. Job pada foreground akan mengontrol shell – menerima input dari keyboard dan mengirim output ke layar. Job pada background tidak menerima input dari terminal, biasanya tanpa memerlukan interaksi.Job pada foreground kemungkinan dihentikan sementara (suspend), dengan menekan [Ctrl-Z].  Job yg diberhentikan sementara dapat dijalankan kembali. Sedangkan melakukan interrupt job yang biasanya dilakukan dengan cara [Ctrl -C] itu job yang diinterupt dimatikan secara permanen dan tidak dapat dijalankan lagi.MENGONTROL PROSES LAINPerintah ps dapat digunakan untuk menunjukkan semua proses yang sedang berjalan pada mesin (bukan hanya proses pada shell saat ini) dengan format :ps –fae atau ps –aux===========================================================================ini adalah beberapa hasil percobaan yang telah saya lakukan :D dan berikut analisanya..percobaan1:Perintah ps ini digunakan untuk menampilkan kondisi proses yang ada. Perintah ini menampilkan informasi tentang TTY (nama terminal dimana proses tersebut aktif), PID (nomor identitas proses), dan CMD yaitu daftar instruksi yang telah dieksekusi.Perintah ps –u ini digunakan untuk menampilkan informasi lainnya atau faktor2 lainnya. Seperti USER, presentase CPU time, presentase system MEMORI, VSZ, RSS, dan STAT yaitu current state pada proses yang dimaksud.Perintah ps –u<user> ini digunakan untuk menampilkan informasi proses yang dilakukan oleh user yang dimaksud.Perintah ps –a ini digunakan untuk menampilkan semua proses yang telah dijalankan pada terminal yang sedang aktif, sedangkan ps –au digunakan untuk menampilkan proses yang telah dieksekusi oleh semua user.percobaan2:1.2.3.4.5.Perintah ps –eH ini digunakan untuk menampilkan semua proses yang ditampilkan secara hierarki. Proses child muncul dibawah proses parent dan diawali dengan spasi.Perintah ps –e f ini digunakan untuk menampilkan semua proses yang ditampilkan dengan karakter grafis.  Dan proses tersebut akan ditampilkan dengan diawali dengan tanda (\) dan (_).Perintah pstree ini digunakan untuk menampilkan proses yang sedang berjalan dan tampilannya yaitu dalam bentuk pohon file atau folder yang ada. Proses parent berada pada sebelah kiri proses childnya.Perintah pstree |grep mingetty ini digunakan untuk menampilkan semua proses mingetty.. Proses akan dikelompokkan dalam satu baris dengan suatu angka sebagai jumlah proses berjalan.Perintah pstree –p ini digunakan untuk melihat/ menampilkan semua prosesdan nomor identitasnya dalam  bentuk pohon file/folder.percobaan3:1.2.3.4.5.Perintah ps –e | more ini digunakan untuk menampilkan semua proses dalam bentuk 4 kolom, yaitu : PID, TTY, TIME, dan CMD.Perintah ps ax | more ini digunakan untuk melihat proses, perintah adigunakan untuk menampilkan semua proses yang ada di terminal. Sedangkan perintah digunakan untuk menampilkan semua proses yang tidak terjadi di terminal. Sehingga perintah ax digunakan untuk menampilkan menampilkan proses baik yang hidden maupun tidak yang ada diterminal.Perintah ps -ef | more ini digunakan untuk menampilkan semua proses dalam format daftar penuh.Perintah ps –eo pid, cmd | more ini digunakan untuk menampilkan semua proses dalam format sesuai definisi user yaitu terdiri dari kolom PID dan CMD.Perintah ps –eo pid,ppid,%mem,cmd | more ini digunakan untuk menampilkan kolom PID, PPID, dan %MEM. PPID adalah proses ID dari proses parent. %MEM menampilkan presentasi memori system yang yang digunakan proses. Jika proses hanya menggunakan sedikit memory system akan ditampilkan 0.percobaan4:Perintah yes ini digunakan untuk menampilkan/mengirim output y yang tidak pernah berhenti, dan untuk menghentikannya menggunakan Ctrl+C pada keyboard.Perintah yes > /dev/null ini digunakan untuk mengirim output y dibelokkan ke file di /dev/null yang tidak pernah berhenti. Untuk menghentikan proses pembelokan output tekan Ctrl+C pada keyboard.Perintah yes > /dev/null & ini digunakan untuk agar perintah yes dijalankan tetapi shell tetap digunakan untuk perintah yang lain dengan meletakkan proses pada background dengan  menambahkan karakter & pada akhir perintah.  Nomor pada “[ ]” adalah nomor dari job diikuti dengan nomor identitas proses.Perintah jobs ini digunakan untuk melihat status dari proses yang ada.Perintah kill %<nomor job> ini digunakan untuk Perintah kill ini digunakan untuk menghentikan suatu job sesuai dengan argumen nomor job pada perintah ini dengan diikuti karakter %.KESIMPULAN
  1. Linux memiliki perintah-perintah khusus untuk mengelola proses-proses atau proses perintah yang dijalankan maupun yang masih dalam kondisi tunda, sehingga dapat memudahkan user untuk memanajemen proses.
  1. Salah satunya adalah menampilkan daftar proses-proses yang sedang berjalan, cara menampilkannya ada berbagai macam format, salah satunya adalah suatu daftar proses bisa ditampilkan secara bagan pohon (tree), sehingga proses-proses child pada bagian dari proses parent akan ditampilkan secara bagan pohon.
  1. User juga bisa menghentikan atau menunda proses sesuai yang kita inginkan.
  1. User juga bisa memberi prioritas untuk proses tertentu, sehingga proses tersebut bisa dijalankan sesuai prioritas yang ditentukan.
  1. Adapun beberapa tipe proses pada linux yang digunakan untuk mengatur proses yang sedang berjalan ataupun tidak, antara lain : foreground background, batch, dan daemon.

Senin, 04 November 2013

MANAJEMEN MEMORI SISTEM OPERASI

Manajemen Memori 
Memori adalah pusat dari operasi pada sistem komputer modern, berfungsi sebagai tempat penyimpanan informasi yang harus diatur dan dijaga sebaik-baiknya. Memori adalah array besar dari word atau byte, yang disebut alamat. CPU mengambil instruksi dari memory berdasarkan nilai dari program counter.
Sedangkan manajemen memori adalah suatu kegiatan untuk mengelola memori komputer. Proses ini menyediakan cara mengalokasikan memori untuk proses atas permintaan mereka, membebaskan untuk digunakan kembali ketika tidak lagi diperlukan serta menjaga alokasi ruang memori bagi proses. Pengelolaan memori utama sangat penting untuk sistem komputer, penting untuk memproses dan fasilitas masukan/keluaran secara efisien, sehingga memori dapat menampung sebanyak mungkin proses dan sebagai upaya agar pemogram atau proses tidak dibatasi kapasitas memori fisik di sistem komputer.


a. Jenis Memori
• Memori Kerja
- ROM/PROM/EPROM/EEPROM
- RAM
- Cache memory

• Memori Dukung
- Floppy
- Harddisk
- CD

b. Fungsi manajemen memori :
Manajemen memori merupakan salah satu bagian terpenting dalam sistem operasi. Memori perlu dikelola sebaik-baiknya agar :
1. Utilitas CPU meningkat.
2. Data dan instruksi dapat diakses dengan cepat oleh CPU.
3. Tercapai efisiensi dalam pemakaian memori yang terbatas.
4. Transfer data dari/ke memori utama ke/dari CPU dapat lebih efisien.
5. Mengelola informasi yang dipakai dan tidak dipakai.
6. Mengalokasikan memori ke proses yang memerlukan.
7. Mendealokasikan memori dari proses telah selesai.
8. Mengelola swapping atau paging antara memori utama dan disk.


1. Isi Memori
Instruksi eksekusi yang umum, contohnya, pertama mengambil instruksi dari memori. Instruksi dikodekan dan mungkin mengambil operand dari memory. Setelah instruksi dieksekusi pada operand, hasilnya ada yang dikirim kembali ke memory. Sebagai catatan, unit memory hanya merupakan deretan alamat memory; tanpa tahu bagaimana membangkitkan (instruction counter, indexing, indirection, literal address dan lainnya) atau untuk apa (instruksi atau data). Oleh karena itu, kita dapat mengabaikan bagaimana alamat memori dibangkitkan oleh program, yang lebih menarik bagaimana deretan alamat memori dibangkitkan oleh program yang sedang berjalan.

a. 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. Sehingga, meskipun alamat dari komputer dimulai pada 00000, alamat pertama dari proses user tidak perlu harus dimulai 00000. Instruksi pengikatan instruksi dan data ke alamat memori dapat dilakukan pada saat :
o Compile time
Jika lokasi memori diketahui sejak awal, kode absolut dapat dibangkitkan, apabila terjadi perubahan alamat awal harus dilakukan kompilasi ulang.
o Load time
Harus membangkitkan kode relokasi jika lokasi memori tidak diketahui pada saat waktu kompilasi.
o Execution time
Pengikatan ditunda sampai waktu eksekusi jika proses dapat dipindahkan selama eksekusi dari satu segmen memori ke segmen memori lain.

b. 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. Bila suatu routine perlu memanggil routine lain, routine yang dipanggil lebih dahulu diperiksa apakah rutin yang dipanggil sudah di-load. Jika tidak, relocatable linking loader dipanggil untuk me-load rutin yg diminta ke memori dan meng-ubah tabel alamat.
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.



c. Dinamic Linking
Sebagian besar sistem operasi hanya men-support static linking, dimana sistem library language diperlakukan seperti obyek modul yang lain dan dikombinasikan dengan loader ke dalam binary program image. 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. Bagaimanapun, tidak seperti dynamic loading, dynamic linking membutuhkan beberapa dukungan dari sistem operasi

d. Overlay
Sebuah proses dapat lebih besar daripada jumlah memori yang dialokasikan untuk proses, teknik overlay biasanya digunakan untuk kasus ini. Teknik Overlay biasanya digunakan untuk memungkinkan sebuah proses mempunyai jumlah yang lebih besar dari memori fisik daripada alokasi memori yang diperuntukkan. 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.


2. Ruang Alamat Logika Dan Ruang Alamat Fisik
Alamat yang dibangkitkan oleh CPU disebut alamat logika (logical address) dimana alamat terlihat sebagai uni memory yang disebut alamat fisik (physical address). Tujuan utama manajemen memori adalah konsep meletakkan ruang alamat logika ke ruang alamat fisik. Hasil skema waktu kompilasi dan waktu pengikatan alamat pada alamat logika dan alamat memori adalah sama. Tetapi hasil skema waktu pengikatan alamat waktu eksekusi berbeda. dalam hal ini, alamat logika disebut dengan alamat maya (virtual address). Himpunan dari semua alamat logika yang dibangkitkan oleh program disebut dengan ruang alamat logika (logical address space); himpunan dari semua alamat fisik yang berhubungan dengan alamat logika disebut dengan ruang alamat fisik (physical address space). 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.


3. Swapping

Swapping merupakan pemindahan proses dari memori utama ke disk dan kembali lagi. Sebuah proses harus berada di memori untuk dieksekusi. 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.

4. Alokasi Berurutan
Memori utama biasanya dibagi ke dalam dua partisi yaitu untuk
o Sistem operasi biasanya diletakkan pada alamat memori rendah dengan vektor interupsi
o Proses user yang diletakkan pada alamat memori tinggi.
Alokasi proses user pada memori berupa single partition allocation atau multiple partition allocation.

a. 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.

b. Multiple Partition Allocation

Pada multiple partition allocation, mengijinkan memori user dialokasikan untuk proses yang berbeda yang berada di antrian input (input queue) yang menunggu dibawa ke memori. 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).

c. Fragmentasi
Fragmentasi Eksternal terjadi pada situasi dimana terdapat cukup ruang memori total untuk memenuhi permintaan, tetapi tidak dapat langsung dialokasikan karena tidak berurutan. Fragmentasi eksternal dilakukan pada algoritma alokasi dinamis, terutama strategi first-fit dan best-fit. 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.


5. Paging

a. 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.



b. Implementasi Sistem Paging
Setiap sistem operasi mempunyai metode sendiri untuk menyimpan tabel page. Beberapa sistem operasi mengalokasikan sebuah tabel page untuk setiap proses. Pointer ke tabel page disimpan dengan nilai register lainnya dari PCB. Pada dasarnya terdapat 3 metode yang berbeda untuk implementasi tabel page :
• Tabel page diimplementasikan sebagai kumpulan dari “dedicated” register.
Register berupa rangkaian logika berkecepatan sangat tinggi untuk efisiensi translasi alamat paging.
• 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).
• 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.

c. Proteksi
Pada model page, proteksi memori menggunakan bit proteksi yang diasosiasikan untuk setiap frame. Biasanya bit proteksi disimpan pada tabel page. Satu bit mendifinisikan satu page untuk “read and write” atau “read-only”. Setiap acuan ke memori melalui tabel page untuk menemukan nomor frame yang benar. Level proteksi yang lebih baik dapat dicapai dengan menambah jumlah bit yang digunakan.

d. 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. Misalnya untuk sistem dengan ruang alamat logika 32 bit dan ukuran page 4K byte, maka tabel page berisi 1 juta entry (232 / 212). Solusinya yaitu dengan melakukan partisi tabel ke beberapa beberapa bagian yang lebih kecil.

e. Shared Page
Pada skema paging, dimungkinkan untuk sharing kode umum. Bentuk ini penting terutama pada lingkungan time sharing. Satu copy read-only dibagi ke beberapa proses (misalnya editor teks, compiler dan sistem window). Kode yang dibagi harus berada pada lokasi ruang alamat logika yang sama untuk semua proses.




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.


Minggu, 03 November 2013



STRUKTUR SISTEM OPERASI
 Secara umum, Sistem Operasi adalah software pada lapisan pertama yang ditempatkan pada memori komputer pada saat komputer dinyalakan. Sedangkan software-software lainnya dijalankan setelah Sistem Operasi berjalan, dan Sistem Operasi akan melakukan layanan inti umum untuk software-software itu. Layanan inti umum tersebut seperti akses ke disk, manajemen memori, skeduling task, dan antar-muka user. Sehingga masing-masing software tidak perlu lagi melakukan tugas-tugas inti umum tersebut, karena dapat dilayani dan dilakukan oleh Sistem Operasi. Bagian kode yang melakukan tugas-tugas inti dan umum tersebut dinamakan dengan “kernel” suatu Sistem Operasi.
Kalau sistem komputer terbagi dalam lapisan-lapisan, maka Sistem Operasi adalah  penghubung antara lapisan hardware dan lapisan software. Lebih jauh daripada itu, Sistem Operasi melakukan semua tugas-tugas penting dalam komputer, dan menjamin aplikasi-aplikasi yang berbeda dapat berjalan secara bersamaan dengan lancar. Sistem Operasi menjamin aplikasi software lainnya dapat menggunakan memori, melakukan input dan output terhadap peralatan lain dan memiliki akses kepada sistem file. Apabila beberapa aplikasi berjalan secara bersamaan, maka Sistem Operasi mengatur skedule yang tepat, sehingga sedapat mungkin semua proses yang berjalan mendapatkan waktu yang cukup untuk menggunakan prosesor (CPU) serta tidak saling mengganggu.

  1. STRUKTUR SISTEM OPERASI
Sebuah sistem yang besar dan kompleks seperti sistem operasi modern harus diatur dengan cara membagi task kedalam komponen-komponen kecil agar dapat berfungsi dengan baik dan mudah.
Brikut ini adalah Struktur Sistem Operasi;
  • Struktur Sederhana
  • Sistem Berlapis (layered system)
  • Kernel Mikro
  • Modular (Modules)
  • Mesin Maya ( Virtual Machine )
  • Client-Server Model
  • Sistem Berorientasi Objek

1. Struktur Sederhana
Sistem operasi sebagai kumpulan prosedur dimana prosedur dapat saling dipanggil oleh prosedur lain di sistem bila diperlukan. Banyak sistem operasi komersial yang tidak terstruktur dengan baik. Kemudian sistem operasi dimulai dari yang terkecil, sederhana dan terbatas lalu berkembang dengan ruang lingkup originalnya. Contoh dari sistem operasi ini adalah MS-DOS dan UNIX. MS-DOS merupakan sistem operasi yang menyediakan fungsional dalam ruang yang sedikit sehingga tidak dibagi menjadi beberapa modul, sedangkan UNIX menggunakan struktur monolitik dimana prosedur dapat saling dipanggil oleh prosedur lain di sistem bila diperlukan dan kernel berisi semua layanan yang disediakan sistem operasi untuk pengguna. Inisialisasi-nya terbatas pada fungsional perangkat keras yang terbagi menjadi dua bagian yaitu kernel dan sistem program. Kernel terbagi menjadi serangkaian interface dan device driver dan menyediakan sistem file, penjadwalan CPU, manajemen memori, dan fungsi-fungsi sistem operasi lainnya melalui system calls.
Kelebihan Struktur Sederhana:
  • Layanan dapat dilakukan sangat cepat karena terdapat di satu ruang alamat.
Kekurangan Struktur Sederhana:
  • Pengujian dan penghilangan kesalahan sulit karena tidak dapat dipisahkan dan dilokalisasi.
  • Sulit dalam menyediakan fasilitas pengamanan.
  • Merupakan pemborosan bila setiap komputer harus menjalankan kernel monolitik sangat besar sementara sebenarnya tidak memerlukan seluruh layanan yang disediakan kernel.
  • Tidak fleksibel.
  • Kesalahan pemograman satu bagian dari kernel menyebabkan matinya seluruh sistem.

Evolusi :
Kebanyakan UNIX sampai saat ini berstruktur monolitik. Meskipun monolitik, yaitu seluruh komponen/subsistem sistem operasi terdapat di satu ruang alamat tetapi secara rancangan adalah berlapis. Rancangan adalah berlapis yaitu secara logik satu komponen/subsistem merupakan lapisan lebih bawah dibanding lainnya dan menyediakan layanan-layanan untuk lapisan-lapisan lebih atas. Komponen-komponen tersebut kemudia dikompilasi dan dikaitkan (di-link) menjadi satu ruang alamat. Untuk mempermudah dalam pengembangan terutama pengujian dan fleksibilitas, kebanyakan UNIX saat ini menggunakan konsep kernel loadable modules,yaitu:
  • Bagian-bagian kernel terpenting berada di memori utama secara tetap.
  • Bagian-bagian esensi lain berupa modul yang dapat ditambahkan ke kernel saat diperlukan dan dicabut begitu tidak digunakan lagi di waktu jalan (run time).
Contoh : UNIX berstruktur monolitik, MS-DOS
2. Sistem Berlapis (layered system)
Sistem operasi dibentuk secara hirarki berdasar lapisan-lapisan, dimana lapisan-lapisan bawa memberi layanan lapisan lebih atas. Lapisan yang paling bawah adalah perangkat keras, dan yang paling tinggi adalah user-interface. Sebuah lapisan adalah implementasi dari obyek abstrak yang merupakan enkapsulasi dari data dan operasi yang bisa memanipulasi data tersebut. Struktur berlapis dimaksudkan untuk mengurangi kompleksitas rancangan dan implementasi sistem operasi. Tiap lapisan mempunyai fungsional dan antarmuka masukan-keluaran antara dua lapisan bersebelahan yang terdefinisi bagus.
Sedangkan menurut Tanenbaum dan Woodhull, sistem terlapis terdiri dari enam lapisan, yaitu:
Lapis 5 – The operator
Berfungsi untuk pemakai operator.
Lapis 4 – User programs
Berfungsi untuk aplikasi program pemakai.
Lapis 3 – I/O management
Berfungsi untuk menyederhanakan akses I/O pada level atas.
Lapis 2 -Operator-operator communication
Berfungsi untuk mengatur komunikasi antar proses.
Lapis 1 -Memory and drum management
Berfungsi untuk mengatur alokasi ruang memori atau drum magnetic.
Lapis 0 -Processor allocation and multiprogramming
Berfungsi untuk mengatur alokasi pemroses dan switching, multi programming dan pengaturan prosessor.
Menurut Stallings, model tingkatan sistem operasi yang mengaplikasikan prinsip ini dapat dilihat pada tabel berikut, yang terdiri dari level-level dibawah ini:
  • Level 1
Terdiri dari sirkuit elektronik dimana obyek yang ditangani adalah register memory cell, dan gerbang logika. Operasi pada obyek ini seperti membersihkan register atau membaca lokasi memori.
  • Level 2
Pada level ini adalah set instruksi pada prosesor. Operasinya adalah instruksi bahasa-mesin, seperti menambah, mengurangi, load dan store.
  • Level 3
Tambahan konsep prosedur atau subrutin ditambah operasi call atau return.
  • Level 4
Mengenalkan interupsi yang menyebabkan prosesor harus menyimpan perintah yang baru dijalankan dan memanggil rutin penanganan interupsi. Empat level pertama bukan bagian sistem operasi tetapi bagian perangkat keras. Meski pun demikian beberapa elemen sistem operasi mulai tampil pada level-level ini, seperti rutin penanganan interupsi. Pada level 5, kita mulai masuk kebagian sistem operasi dan konsepnya berhubungan dengan multi-programming.
  • Level 5
Level ini mengenalkan ide proses dalam mengeksekusi program. Kebutuhan-kebutuhan dasar pada sistem operasi untuk mendukung proses ganda termasuk kemampuan men-suspend dan me-resume proses. Hal ini membutuhkan register perangkat keras untuk menyimpan agar eksekusi bisa ditukar antara satu proses ke proses lainnya.


  • Level 6
Mengatasi penyimpanan sekunder dari komputer. Level ini untuk menjadualkan operasi dan menanggapi permintaan proses dalam melengkapi suatu proses.
  • Level 7
Membuat alamat logik untuk proses. Level ini mengatur alamat virtual ke dalam blok yang bisa dipindahkan antara memori utama dan memori tambahan. Cara-cara yang sering dipakai adalah menggunakan ukuran halaman yang tetap, menggunakan segmen sepanjang variabelnya, dan menggunakan cara keduanya. Ketika blok yang dibutuhkan tidak ada dimemori utama, alamat logis pada level ini meminta transfer dari level 6. Sampai point ini, sistem operasi mengatasi sumber daya dari prosesor tunggal. Mulai level 8, sistem operasi mengatasi obyek eksternal seperti peranti bagian luar, jaringan, dan sisipan komputer kepada jaringan.
Ø  Level 8
Mengatasi komunikasi informasi dan pesan-pesan antar proses. Dimana pada level 5 disediakan mekanisme penanda yang kuno yang memungkinkan untuk sinkronisasi proses, pada level ini mengatasi pembagian informasi yang lebih banyak. Salah satu peranti yang paling sesuai adalah pipe (pipa) yang menerima output suatu proses dan memberi input ke proses lain.
  • Level 9
Mendukung penyimpanan jangka panjang yang disebut dengan berkas. Pada level ini, data dari penyimpanan sekunder ditampilkan pada tingkat abstrak, panjang variabel yang terpisah. Hal nini bertentangan tampilan yang berorientasikan perangkat keras dari penyimpanan sekunder.
  • Level 10
Menyediakan akses ke peranti eksternal menggunakan antarmuka standar.
  • Level 11
Bertanggung-jawab mempertahankan hubungan antara internal dan eksternal identifier dari sumber daya dan obyek sistem. Eksternal identifier adalah nama yang bisa dimanfaatkan oleh aplikasi atau pengguna. Internal identifier adalah alamat atau indikasi lain yang bisa digunakan oleh level yang lebih rendah untuk meletakkan dan mengontrol obyek.
  • Level 12
Menyediakan suatu fasilitator yang penuh tampilan untuk mendukung proses. Hal ini merupakan lanjutan dari yang telah disediakan pada level 5. Pada level 12, semua info yang dibutuhkan untuk managemen proses dengan berurutan disediakan, termasuk alamat virtual di proses, daftar obyek dan proses yang berinteraksi dengan proses tersebut serta batasan interaksi tersebut, parameter yang harus dipenuhi proses saat pembentukan, dan karakteristik lain yang mungkin digunakan sistem operasi untuk mengontrol proses.
  • Level 13
Menyediakan antarmuka dari sistem operasi dengan pengguna yang dianggap sebagai shell atau dinding karena memisahkan pengguna dengan sistem operasi dan menampilkan sistem operasi dengan sederhana sebagai kumpulan servis atau pelayanan.
Dari ketiga sumber diatas dapat kita simpulkan bahwa lapisan sistem operasi secara umum terdiri atas 4 bagian, yaitu:
  1. Perangkat keras
Lebih berhubungan kepada perancang sistem. Lapisan ini mencakup lapisan 0 dan 1 menurut Tanenbaum, dan level 1 sampai dengan level 4 menurut Stallings.
  1. Sistem operasi
Lebih berhubungan kepada programer. Lapisan ini mencakup lapisan 2 menurut Tanenbaum, dan level 5 sampai dengan level 7 menurut Stallings.
  1. Kelengkapan
Lebih berhubungan kepada programer. Lapisan ini mencakup lapisan 3 menurut Tanenbaum, dan level 8 sampai dengan level 11 menurut Stallings.
  1. Program aplikasi
Lebih berhubungan kepada pengguna aplikasi komputer. Lapisan ini mencakup lapisan 4 dan lapisan 5 menurut Tanebaum, dan level 12 dan level 13 menurut Stallings.
Lapisan n memberi layanan untuk lapisan n+1. Proses-proses di lapisan n dapat meminta layanan lapisan n-1 untuk membangunan layanan bagi lapisan n+1. Lapisan n dapat meminta layanan lapisan n-1. Kebalikan tidak dapat, lapisan n tidak dapat meminta layanan n+1. Masing-masing berjalan di ruang alamat-nya sendiri. Kelanjutan sistem berlapis adalah sistem berstruktur cincin seperti sistem MULTICS. Sistem MULTICS terdiri 64 lapisan cincin dimana satu lapisan berkewenangan berbeda. Lapisan n-1 mempunyai kewenangan lebih dibanding lapisan n. Untuk meminta layanan lapisan n-1, lapisan n melakukan trap. Kemudian, lapisan n-1 mengambil kendali sepenuhnya untuk melayani lapisan n.
Kelebihan Sistem Berlapis (layered system):
  • Memiliki rancangan modular, yaitu sistem dibagi menjadi beberapa modul & tiap modul dirancang secara independen.
  • Pendekatan berlapis menyederhanakan rancangan, spesifikasi dan implementasi sistem operasi.
Kekurangan Sistem Berlapis (layered system):
  • Fungsi-fungsi sistem operasi diberikan ke tiap lapisan secara hati-hati.
Contoh: Sistem operasi yang menggunakan pendekatan berlapis adalah THE yang dibuat oleh Djikstra dan mahasiswa-mahasiswanya, serta sistem operasi MULTICS.

3. Kernel Mikro
Metode struktur ini adalah menghilangkan komponen-komponen yang tidak diperlukan dari kernel dan mengimplementasikannya sebagai sistem dan program-program level user. Hal ini akan menghasilkan kernel yang kecil. Fungsi utama dari jenis ini adalah menyediakan fasilitas komunikasi antara program client dan bermacam pelayanan yang berjalan pada ruang user.
Kelebihan Kernel Mikro:
  • kemudahan dalam memperluas sistem operasi
  • mudah untuk diubah ke bentuk arsitektur baru
  • kode yang kecil dan lebih aman
Kekurangan Kernel Mikro:
  • kinerja akan berkurang selagi bertambahnya fungsi-fungsi yang digunakan.
Contoh: sistem operasi yang menggunakan metode ini adalah TRU64 UNIX, MacOSX dan QNX.



4. Modular (Modules)
Kernel mempunyai kumpulan komponen-komponen inti dan secara dinamis terhubung pada penambahan layanan selama waktu boot atau waktu berjalan. Sehingga strateginya menggunakan pemanggilan modul secara dinamis (Loadable Kernel Modules). Umumnya sudah diimplementasikan oleh sistem operasi modern seperti Solaris, Linux dan MacOSX.
Sistem Operasi Apple Macintosh Mac OS X menggunakan struktur hybrid. Strukturnya menggunakan teknik berlapis dan satu lapisan diantaranya menggunakan Mach microkernel.

5. Mesin Maya ( Virtual Machine )
Mesin maya mempunyai sistem timesharing yang berfungsi untuk ,menyediakan kemampuan untuk multiprogramming dan perluasan mesin dengan antarmuka yang lebih mudah.
Struktur Mesin maya ( CP/CMS, VM/370 ) terdiri atas komponen dasar utama :
  • Control Program, yaitu virtual machine monitor yang mengatur fungsi ari prosessor, memori dan piranti I/O. Komponen ini berhubungan langsung dengan perangkat keras.
  • Conventional Monitor System, yaitu sistem operasi sederhanayang mengatur fungsi dari proses, pengelolaan informasi dan pengelolaan piranti.
Kelebihan Mesin Maya ( Virtual Machine ):
  • Konsep mesin virtual menyediakan proteksi yang lengkap untuk sumber daya system sehingga masing-masing mesin virtual dipisahkan mesin virtual yang lain. Isolasi ini tidak memperbolehkan pembagian sumber daya secara langsung.
  • Sistem mesin virtual adalah mesin yang sempurna untuk riset dan pengembangan system operasi. Pengembangan system dikerjakan pada mesin virtual, termasuk di dalamnya mesin fisik dan tidak mengganggu operasi system yang normal.
Kekurangan Mesin Maya ( Virtual Machine ):
  • Konsep mesin virtual sangat sulit untuk mengimplementasikan kebutuhan dan duplikasi yang tepat pada mesin yang sebenarnya.

Contoh:
  • Sistem operasi MS-Windows NT dapat menjalankan aplikasi untuk MS-DOS, OS/2 mode teks dan aplikasi WIN16.
  • IBM mengembangkan WABI untuk meng-emulasikan Win32 API sehingga sistem operasi yang menjalankan WABI dapat menjalankan aplikasi-aplikasi untuk MS-Windows.
  • Para pengembang Linux membuat DOSEMU untuk menjalankan aplikas-aplikasi DOS pada sistem operasi Linux, WINE untuk menjalankan aplikasi-aplikasi MS-Windows.
  • VMWare merupakan aplikasi komersial yang meng-abstraksikan perangkat keras intel 80×86 menjadi virtual mesin dan dapat menjalan beberapa sistem operasi lain (guest operating system) di dalam sistem operasi MS-Windos atau Linux (host operating system). VirtualBox merupakan salah satu aplikasi sejenis yang opensource.

6. Client-Server Model
Mengimplementasikan sebagian besar fungsi sistem operasi pada mode pengguna (user mode). Sistem operasi merupakan kumpulan proses dengan proses-proses dikategorikan sebagai server dan client, yaitu :
Server, adalah proses yang menyediakan layanan.
Client, adalah proses yang memerlukan/meminta layanan.
Proses client yang memerlukan layanan mengirim pesan ke server dan menanti pesan jawaban. Proses server setelah melakukan tugas yang diminta, mengirim hasil dalam bentuk pesan jawaban ke proses client. Server hanya menanggapi permintaan client dan tidak memulai dengan percakapan client. Kode dapat diangkat ke level tinggi, sehingga kernel dibuat sekecil mungkin dan semua tugas diangkat ke bagian proses pemaka. Kernel hanya mengatur komunikasi antara client dan server. Kernel yang ini popular dengan sebutan mikrokernel.
Kelebihan Client-Server Model:
  • Pengembangan dapat dilakukan secara modular.
  • Kesalahan (bugs) di satu subsistem (diimplementasikan sebagai satu proses) tidak merusak subsistem-subsistem lain, sehingga tidak mengakibatkan satu sistem mati secara keseluruhan.
  • Mudah diadaptasi untuk sistem tersebar.
Kekurangan Client-Server Model:
  • Layanan dilakukan lambat karena harus melalui pertukaran pesan.
  • Pertukaran pesan dapat menjadi bottleneck.
  • Tidak semua tugas dapat dijalankan di tingkat pemakai (sebagai proses pemakai).
7. Sistem Berorientasi Objek
Sisten operasi merealisasikan layanan sebagai kumpulan proses disebut sistem operasi bermodel proses. Pendekatan lain implementasi layanan adalah sebagai objek-objek. Sistem operasu yang distrukturkan menggunakan objek disebut sistem operasi berorientasi objek. Pendekatan ini dimaksudkan untuk mengadopsi keunggulan teknologi berorientasi objek. Pada sistem yang berorientasi objek, layanan diimplementasikan sebagai kumpulan objek. Objek mengkapsulkan struktur data dan sekumpulan operasi pada struktur data itu. Tiap objek diberi tipe yang menandadi properti objek seperti proses, direktori, berkas, dan sebagainya. Dengan memanggil operasi yang didefinisikan di objek, data yang dikapsulkan dapat diakses dan dimodifikasi. Model ini sungguh terstruktur dan memisahkan antara layanan yang disediakan dan implementasinya. Sistem operasi MS Windows NT telah mengadopsi beberapa teknologi berorientasi objek tetapi belum keseluruhan.
Kelebihan Sistem Berorientasi Objek:
  • Terstruktur dan memisahkan antara layanan yang disediakan dan implementasinya.
Kekurangan Sistem Berorientasi Objek:
  • Sistem operasi MS Windows NT telah mengadopsi beberapa teknologi berorientasi objek tetapi belum keseluruhan.
Contoh sistem operasi yang berorientasi objek, antara lain : eden, choices, x-kernel, medusa, clouds, amoeba, muse, dan sebagainya.