Minggu, 15 Maret 2020

Kuis part. 6


Nama : Novan Nurdiana
Kuis part. 6
Penjadwalan CPU
1)      Apa yang di maksud penjadwalan   CPU?
Penjadwalan CPU adalah (CPU scheduling) adalah suatu pengaturan proses-proses yang adadalam cpu. Penjadwalan ini sangatlah penting karena menentukan performa dari sebuah cpu.Penjadwalan cpu adalah dasar dari multiprogramming karena dengan adalnya alokasi itu maka proses-proses itu mendapatkan alokasi resource dari CPU.
2)      Sebutkan Kriteria Penjadwalan yang Optimal?
Kriteria untuk mengukur dan optimasi kinerje penjadwalan :
·         Adil (fairness)Adalah proses-proses yang diperlakukan sama, yaitu mendapat jatah waktu pemroses yang sama dan tak ada proses yang tak kebagian layanan pemroses sehingga mengalami kekurangan waktu.
·         Efisiensi (eficiency) Efisiensi atau utilisasi pemroses dihitung dengan perbandingan (rasio) waktu sibuk pemroses.
·         Waktu tanggap (response time).Waktu tanggap berbeda untuk : Sistem interaktif
·         Didefinisikan sebagai waktu yang dihabiskan dari saat karakter terakhir dari perintah dimasukkan atau transaksi sampai hasil pertama muncul di layar. Waktu tanggap ini disebut terminal response time.
·         Sistem waktu nyata
·         Didefinisikan sebagai waktu dari saat kejadian (internal atau eksternal) sampai instruksi pertama rutin layjkusnendaranan yang dimaksud dieksekusi, disebut event response time.
·         Turn around time Adalah waktu yang dihabiskan dari saat program atau job mulai masuk ke system sampai proses diselesaikan sistem. Waktu yang dimaksud adalah waktu yang dihabiskan di dalam sistem, diekspresikan sebagai penjumlah waktu eksekusi (waktu pelayanan job) dan waktu menunggu, yaitu : Turn arround time = waktu eksekusi + waktu menunggu.
·         Throughput Adalah jumlah kerja yang dapat diselesaikan dalam satu unit waktu. Cara untuk mengekspresikan throughput adalah dengan jumlah job pemakai yang dapat dieksekusi dalam satu unit / interval waktu. Kriteria-kriteria tersebut saling bergantung dan dapat pula saling bertentangan sehingga tidak dimungkinkan optimasi semua kriteria secara simultan. Contoh : untuk memberi waktu tanggap kecil memerlukan penjadwalan yang sering beralih ke antara proses-proses itu. Cara ini meningkatkan overhead sistem dan mengurangi throughput. Oleh karena itu dalam menentukan kebijaksanaan perancangan penjadwalan sebaiknya melibatkan kompromi diantara kebutuhan-kebutuhan yang saling bertentangan. Kompromi ini bergantung sifat dan penggunaan sistem komputer.

3)      Apa yang di maksud SJF?
SJF (Shortest - Job - First) adalah Penggabungan setiap proses merupakan panjang dari brust CPU berikutnya. Panjang tersebut digunakan untuk penjadwalan proses pada waktu terpendek.

4)      Sebutkan jenis penjadwalan?
1.  Nonpreemptive, menggunakan konsep :
a. FIFO (First In First Out) atau FCFS (First Come First Serve)
b. SJF (Shortest Job First)
c. HRN (Highest Ratio Next)
d. MFQ (Multiple Feedback Queues)
2.  Preemptive, menggunakan konsep :
a. RR (Round Robin)
b. SRF (Shortest Remaining First)
c. PS (Priority Schedulling)
d. GS (Guaranteed Schedulling)
Klasifikasi lain selain berdasarkan dapat/tidaknya suatu proses diambil secara paksa adalah klasifikasi berdasarkan adanya prioritas di proses-proses, yaitu :
1.  Algoritma penjadwalan tanpa berprioritas.
`           2.  Algoritma penjadwalan berprioritas, terdiri dari :
a. Berprioritas static
b. Berprioritas dinamis
Algoritma Nonpreemptive
First In First Out (FIFO)
First In First Out (FIFO) merupakan penjadwalan tidak berprioritas. FIFO adalah penjadwalan paling sederhana, yaitu proses-proses diberi jatah waktu pemroses berdasarkan waktu kedatangan. Pada saat proses mendapat jatah waktu pemroses, proses dijalankan sampai selesai.
Penilaian penjadwalan ini berdasarkan kriteria optimasi :
·         Adil, dalam arti resmi (proses yang datang duluan akan dilayani lebih dulu), tapi dinyatakan tidak adil karena job-job yang perlu waktu lama membuat job-job pendek menunggu. Job-job yang tidak penting dapat membuat job-job penting menunggu lama.
·         Efisiensi, sangat efisien.
·         Waktu tanggap sangat jelek, tidak cocok untuk sistem interaktif apalagi untuk sistem waktu nyata.
·         Turn around time kurang baik.
·         Throughtput kurang baik. FIFO jarang digunakan secara mandiri, tetapi dikombinasikan dengan skema lain.
·         Baik untuk sistem batch yang sangat jarang berinteraksi dengan pemakai. Contoh : aplikasi analisis numerik, maupun pembuatan tabel.
·            Sangat tidak baik (tidak berguna) untuk sistem interaktif, karena tidak memberi waktu tanggap yang baik.
·            Tidak dapat digunakan untuk sistem waktu nyata (real-time applications).
Contoh:Ada tiga buah proses yang datang secara bersamaan yaitu pada 0 ms, P1 memiliki burst time 24 ms, P2 memiliki burst time 3 ms, dan P3 memiliki burst time 3 ms. Hitunglah waiting time rata-rata dan turnaround time( burst time + waiting time) dari ketiga proses tersebut dengan menggunakan algoritma FCFS. Waiting time untuk P1 adalah 0 ms (P1 tidak perlu menunggu), sedangkan untuk P2 adalah sebesar 24 ms (menunggu P1 selesai), dan untuk P3 sebesar 27 ms (menunggu P1 dan P2 selesai).
Urutan kedatangan adalah P1, P2 , P3; gantt chart untuk urutan ini adalah:
Waiting time rata-ratanya adalah sebesar(0+24+27)/3 = 17ms. Turnaround time untuk P1 sebesar 24 ms, sedangkan untuk P2 sebesar 27 ms (dihitung dari awal kedatangan P2 hingga selesai dieksekusi), untuk P3 sebesar 30 ms. Turnaround time rata-rata untuk ketiga proses tersebut adalah (24+27+30)/3 = 27 ms.
Kelemahan dari algoritma ini:
              1.      Waiting time rata-ratanya cukup lama.
2.      Terjadinya convoy effect, yaitu proses-proses menunggu lama untuk menunggu 1 proses besar yang sedang dieksekusi oleh CPU. Algoritma ini juga menerapkan konsep non-preemptive, yaitu setiap proses yang sedang dieksekusi oleh CPU tidak dapat di-interrupt oleh proses yang lain.
            Misalkan proses dibalik sehingga urutan kedatangan adalah P3, P2, P1. Waiting time adalah P1=6; P2=3; P3=0. Average waiting time: (6+3+0)/3=3.
                        Shortest Job First (SJF)
Penjadwalan ini mengasumsikan waktu berjalannya proses sampai selesai telah diketahui sebelumnya. Mekanismenya adalah menjadwalkan proses dengan waktu jalan terpendek lebih dulu sampai selesai, sehingga memberikan efisiensi yang tinggi dan turn around time rendah dan penjadwalannya tak berprioritas.
                        Contoh :
Terdapat empat proses (job) yaitu A,B,C,D dengan waktu jalannya masing-masing adalah 8,4,4 dan 4 menit. Apabila proses-proses tersebut dijalankan, maka turn around time untuk A adalah 8 menit, untuk B adalah 12, untuk C adalah 16 dan untuk D adalah 20. Apabila keempat proses tersebut menggunakan penjadwalan shortest job fisrt, maka turn around time untuk B adalah 4, untuk C adalah 8, untuk D adalah 12 dan untuk A adalah 20.
Karena SJF selalu memperhatikan rata-rata waktu respon terkecil, maka sangat baik untuk proses interaktif. Umumnya proses interaktif memiliki pola, yaitu menunggu perintah, menjalankan perintah, menunggu perintah dan menjalankan perintah, begitu seterusnya. Masalah yang muncul adalah tidak mengetahui ukuran job saat job masuk. Untuk mengetahui ukuran job adalah dengan membuat estimasi berdasarkan kelakukan sebelumnya. Prosesnya tidak datang bersamaan, sehingga penetapannya harus dinamis. Penjadwalan ini jarang digunakan karena merupakan kajian teoritis untuk pembandingan turn around time.
                        Highest Ratio Next (HRN)
Highest Ratio Next merupakan strategi penjadwalan dengan prioritas proses tidak hanya berdasarkan fungsi waktu layanan tetapi juga jumlah waktu tunggu proses. Begitu proses mendapat jatah pemroses, proses berjalan sampai selesai.
Prioritas dinamis HRN dihitung berdasarkan rumus : Prioritas = (waktu tunggu + waktu layanan ) / waktu layanan Karena waktu layanan muncul sebagai pembagi, maka job lebih pendek berprioritas lebih baik, karena waktu tunggu sebagai pembilang maka proses yang telah menunggu lebih lama juga mempunyai kesempatan lebih bagus. Disebut HRN, karena waktu tunggu ditambah waktu layanan adalah waktu tanggap, yang berarti waktu tanggap tertinggi yang harus dilayani.
              4.      Multilevel Feedback Queue
Algoritma ini mirip sekali dengan algoritma multilevel queue. Perbedaannya ialah algoritma ini mengizinkan proses untuk pindah antrian. Jika suatu proses menyita CPU terlalu lama, maka proses itu akan dipindahkan ke antrian yang lebih rendah. Hal ini menguntungkan proses interaksi karena proses ini hanya memakai waktu CPU yang sedikit. Demikian pula dengan proses yang menunggu terlalu lama. Proses ini akan dinaikkan tingkatannya. Biasanya prioritas tertinggi diberikan kepada proses dengan CPU burst terkecil, dengan begitu CPU akan terutilisasi penuh dan M/K dapat terus sibuk. Semakin rendah tingkatannya, panjang CPU burst proses juga semakin besar.

5)       Definisikan perbedaan antara   penjadualan secara preemptive dan nonpreemptive?
Penjadwalan Non Preemptive
Jika proses sedang menggunakan CPU, proses tersebut akan membawa CPU sampai proses tersebut melepaskannya (berhenti dalam keadaan wait). Dapat dikatakan bahwa Non-Preemptive ini merupakan proses yang hanya dapat melakukan proses sekali run saja kemudian diselesaikan sampai akhir proses tersebut tanpa ada proses yang menyela proses ini.

Penjadwalan Preemptive
Pada saat proses sedang menggunakan CPU, CPU dapat diambil alih oleh proses lain.
Dalam hal ini harus selalu dilakukan perbaikan data. Proses ini adalah kebalikan dari proses Non-preemptive tadi yakni saat proses ini bekerja, maka proses dapat disela oleh proses lain sehingga prose ini akan kembali di proses setelah CPU menyelesaikan proses yang menyela tadi

Kuis part, 5


Nama : Novan Nurdiana
Kuis part, 5
Thread
1.      Apa yang di maksud thread?
Jawaban :
Thread merupakan unit dasar dari penggunaan CPU, yang terdiri dari Thread_ID, program counterregister set, dan stack. Sebuah thread berbagi code sectiondata section, dan sumber daya sistem operasi dengan Thread lain yang dimiliki oleh proses yang sama. Thread juga sering disebut lightweight process. Sebuah proses tradisional atau heavyweight process mempunyai thread tunggal yang berfungsi sebagai pengendali.
2.      Perbedaan antara proses dengan thread tunggal dengan proses dengan thread yang banyak adalah?
Sebuah proses adalah sebuah peristiwa adanya sebuah program yang dapat dieksekusi. Sebagai sebuah eksekusi proses, maka hal tersebut membutuhkan perubahan keadaan. Keadaan dari sebuah proses dapat didefinisikan oleh aktivitas proses tersebut. Suatu proses adalah lebih dari kode program, dimana kadang kala dikenal sebagai bagian tulisan. Proses juga termasuk aktivitas yang sedang terjadi, sebagaimana digambarkan oleh nilai pada program counter dan isi dari daftar prosesor/ processor’s register. Suatu proses umumnya juga termasuk process stack, yang berisikan data temporer (seperti parameter metoda, address yang kembali, dan variabel lokal) dan sebuah data section, yang berisikan variabel global. Setiap proses mungkin menjadi satu dari beberapa state berikut, antara lain: new, ready, running, waiting, atau terminated. Setiap proses direpresentasikan ada sistem operasi berdasarkan proses-control-block (PCB)-nya.
3.      Sebutkan macam-macam thread!
Dalam sub bab sebelumnya telah dibahas pengertian dari thread, keuntungannya, tingkatan atau levelnya seperti pengguna dan kernel. Maka dalam subbab ini pembahasan akan dilanjutkan dengan jenis-jenis thread tersebut dan contohnya baik pada Solaris mau pun Java.
Sistem-sistem yang ada sekarang sudah banyak yang bisa mendukung untuk kedua pengguna dan kernel thread, sehingga model-model multithreading-nya pun menjadi beragam. Implementasi multithreading yang umum akan kita bahas ada tiga, yaitu model many-to-one, one-to-one, dan many-to-many.
http://iim6.tripod.com/ibam-os-html/img/5-3.png
Gambar XXX Model Multithreading
Model many-to-one ini memetakan beberapa tingkatan pengguna thread hanya ke satu buah kernel thread. Managemen proses thread dilakukan oleh (di ruang) pengguna, sehingga menjadi efisien, tetapi apabila sebuah thread melakukan sebuah pemblokingan terhadap sistem pemanggilan, maka seluruh proses akan berhenti (blocked). Kelemahan dari model ini adalah multihreads tidak dapat berjalan atau bekerja secara paralel di dalam multiprosesor dikarenakan hanya satu thread saja yang bisa mengakses kernel dalam suatu waktu.
http://iim6.tripod.com/ibam-os-html/img/5-4.png
Gambar XXX Model Many to One
Model one-to-one memetakan setiap thread pengguna ke dalam satu kernel thread. Hal ini membuat model one-to-one lebih sinkron daripada model many-to-one dengan mengizinkan thread lain untuk berjalan ketika suatu thread membuat pemblokingan terhadap sistem pemanggilan; hal ini juga mengizinkan multiple thread untuk berjalan secara parallel dalam multiprosesor. Kelemahan model ini adalah dalam pembuatan thread pengguna dibutuhkan pembuatan korespondensi thread pengguna. Karena dalam proses pembuatan kernel thread dapat mempengaruhi kinerja dari aplikasi maka kebanyakan dari implementasi model ini membatasi jumlah thread yang didukung oleh sistem. Model one-to-one diimplementasikan oleh Windows NT dan OS/2.
http://iim6.tripod.com/ibam-os-html/img/5-5.png
Gambar XXX Model One to One

4.      Jelaskan tindakan yang di ambil oleh sebuah kernel saat alih konteks antara kernel level thread?
Sebuah kernel akan menyimpan konteks dari proses lama kedalam PCBnya, kemudian mengisi konteks yang telah disimpan dari proses baru yang telah terjadwal untuk berjalan ketika alih konteks terjadi saat proses sedang berlangsung. karena sistem ini melakukan pekerjaan yang tidak perlu maka pergantian waktu konteks merupakan murni overhead. Kecepatannya pengalihan ini bervariasi dari tiap mesin. Hal ini bergantung pada kecepatan memori, jumlah register yang harus di copy, dan keberadaan instruksi khusus. Tingkat kecepatan pengalihan ini umumnya berkisar antara 1 sampai 1000 micro detik
5.      Sebutkan Keuntungan dan kerugian Multithreading?
Keuntungan dari sistem yang menerapkan multithreading dapat kita kategorikan menjadi 4
bagian:
a)      Responsif. Aplikasi interaktif menjadi tetap responsif meskipun sebagian dari program sedang
diblok atau melakukan operasi lain yang panjang. Umpamanya, sebuah thread dari web browser
dapat melayani permintaan pengguna sementara thread yang lain berusaha menampilkan
gambar.
b)      Berbagi sumber daya. Beberapa thread yang melakukan proses yang sama akan berbagi
sumber daya. Keuntungannya adalah mengizinkan sebuah aplikasi untuk mempunyai beberapa
thread yang berbeda dalam lokasi memori yang sama.
c)       Ekonomis. Pembuatan sebuah proses memerlukan pengalokasian memori dan sumber daya.
Alternatifnya adalah dengan menggunakan thread, karena thread membagi memori dan sumber
daya yang dimilikinya sehingga lebih ekonomis untuk membuat thread dan context switching
thread. Akan susah mengukur perbedaan waktu antara thread dan switch, tetapi secara umum
pembuatan dan pengaturan proses akan memakan waktu lebih lama dibandingkan dengan
thread. Pada Solaris, pembuatan proses memakan waktu 30 kali lebih lama dibandingkan
pembuatan thread sedangkan proses context switch 5 kali lebih lama dibandingkan context
switching thread.
d)      Utilisasi arsitektur multiprosesor. Keuntungan dari multithreading dapat sangat meningkat
pada arsitektur multiprosesor, dimana setiap thread dapat berjalan secara paralel di atas
procesor yang berbeda. Pada arsitektur processor tunggal, CPU menjalankan setiap thread
secara bergantian tetapi hal ini berlangsung sangat cepat sehingga menciptakan ilusi paralel,
tetapi pada kenyataannya hanya satu thread yang dijalankan CPU pada satu-satuan waktu.

Adapun kerugian dari multithreading adalah :
·         Jika digunakan secara berlebihan, multithreading akan berdampak pada pemborosan
resource dan CPU yang dialokasikan untuk switching threads. Misalnya jika heavy disk I/O
terlibat, akan lebih cepat jika hanya memiliki 1 atau 2 thread yang melaksanakan tugas secara
berurutan, daripada menggunakan multithread yang masing-masing mengeksekusi sebuah task
pada waktu yang sama.
·          Sistem yang memiliki kecepatan prosesor dan memory yang cenderung sama, sehingga tidak
ada efisiensi yang hilang (mengacu kepada latency), tidak akan memperoleh peningkatan
bandwidth yang signifikan jika menggunakan multithreading.
·         Multithreading menghasilkan program yang lebih kompleks. Menggunakan multiple thread
sendiri tidak akan menciptakan kerumitan, tapi interaksi antar thread-lah yang mengakibatkan
kompleksitas tersebut.
·          Thread yang banyak bisa saling berinterferensi ketika saling berbagi sumber daya hardware
seperti cache
·          

Kuis Pert 4


Nama : Novan Nurdiana
Kuis Pert 4
Proses
1.      Apa itu multiprogramming ?

Multiprogramming adalah kegiatan menjalankan beberapa program pada memori pada satu waktu. Untuk meningkatkan keseluruhan kemampuan dari sistem komputer, para developer memperkenalkan konsep multiprogramming. Dengan multiprogramming, beberapa tugas disimpan dalam memori dalam satu waktu; CPU digunakan secara bergantian sehingga menambah utilisasi CPU dan mengurangi total waktu yang dibutuhkan untuk menyelesaikan tugas-tugas tersebut.

Melayani banyak program yang tidak ada hubungannya satu sama lain dan dijalankan sekaligus dalam satu komputer yang sama. Pelaksanaan instruksi yang diterapkan adalah:
-          program dimuat ke dalam memori,
-          program dijalankan sampai mengakses perangkat I/O,
-          berpindah (switch) ke pekerjaan lain,
-          langkah tersebut berulang terus menerus,
-          untuk proses perpindahan (switching), dilaksanakan oleh software.
Contoh nya adalah menjalankan browser bersamaan dengan media player atau programm pengolah gambar seperti photoshop. Yang di maksud dengan multi programming di sini adalah CPU menjalankan beberapa program sekaligus.

2.      Aktifitas apa saja yang dilibatkan pada saat penciptaan proses ?
Aktivitas pada penciptaan proses:
  • Memberi identitas proses
  • Menyisipkan proses pada senarai atau tabel proses
  • Menentukan prioritas awal proses
  • Menciptakan PCB
  • Mengalokasikan resource awal bagi proses

Penciptaan proses adalah hal yang paling pertama dilakukan sistem operasi, karena yang pertama dilakukan ketika kita mengakses aplikasi adalah terlebih dahulu harus ada proses yang bisa diakses

3.      Apa alasan penghancuran proses akibat terjadinya kegagalan input/output ?
a.       Selesainya proses secara normal
Proses mengeksekusi penggilan layanan sistem operasi untuk menandakan bahwa proses telah berjalan secara lengkap.
b.      Batas waktu terlewati
Proses telah berjalan melebihi batas waktu total yang dispesifikasikan
c.       Memori tidak tersedia
Proses memerlukan memori lebih banyak dari pada yang dapat disediakan sistem
d.      Pelanggaran terhadap batas meori
Proses mencoba mengakses lokasi memori yang tidak diizinkan di akses
e.       Terjadi kesalahan karena pelanggaran proteksi
Proses berusaha menggunakan sumber daya atau file yang tidak diijinkan di pakainya, atau proses mencoba menggunakannya tidak untuk peruntukannya, seperti menulis file read only.
f.        Terjadi kesalahan aritmatika
Proses mencoba perhitungan terlarang, seperti pembagian dengan nol atau mencoba menyimpan angka yang lebih besar dari pada yang di akomodasi oleh perangkat keras.
g.      Waktu telah kadaluarsa 
Proses telah menunggu lebihb lama dari pada maksimum yang ditentukan untuk terjadinya suatu kejadian spesifik.
h.      Terjadi kegagalan masukan atau keluaran 
Kesalahan muncul pada masukan atau keluaran, seperti ketidakmampuan menentukan file, kegagalan membaca atau menulis setelah sejumlah maksimum percobaan ditentukan (misal : area rusak didapatkan pada disk, atau operasi tak valis seperti membaca line printer).

4.      Jelaskan metode apa saja yang digunakan sistem operasi dalam pengendalian antar proses ?
a.       Saling melanjutkan (interleave), sistemoperasi harus dapat kembali melanjutkan proses setelah melayani proses lain.
b.      Kebijaksaan tertentu, sistem operasi harus mengalokasikan sumber daya ke proses berdasar prioritasnya.
c.       Komunikasi antar proses dan penciptaan proses, sistem operasi harus mendukung komunikasi dan penciptaan antar proses (menstrukturkan aplikasi).

5.      Sebutkan operasi-operasi apa saja yang dapat dilakukan sistem operasi terhadap proses?
a.       Penciptaan proses
b.      Pengahncuran / terminasi proses
c.       Penundaan proses
d.      Pelanjutan kembali proses
e.       Perubahaan prioritas proses
f.        Memblock proses
g.      Membangunkan proses
h.      Penjadwalan proses
i.        Memungkinkan proses berkomunikasi dengan proses lain


Kuis Pert. 3


Nama ; Novan Nurdiana

Kuis Pert. 3
Struktur sistem operasi
1.      Apa itu kernel?
Kernel adalah suatu perangkat lunak yang menjadi bagian utama dari sebuah sistem operasi komputer, tugasnya yaitu melayani bermacam-macam program aplikasi untuk mengakses perangkat keras (hardware) komputer secara aman. Ada juga definisi kernel yang lainnya adalah suatu perangkat lunak yang membuat komunikasi atau mediator antara aplikasi dan perangkat keras (hardware), yang menyediakan pelayanan sistem seperti pengaturan memori untuk proses yang sedang berjalan, pengaturan file, pengaturan input-output dan masih banyak lagi fungsi tambahan yang lainnya. Jadi intinya adalah kernel merupakan suatu penghubung antara software dan hardware.

2.      Apa saja komponen sistem operasi modern?
a)      Management Process

Proses adalah program yang sedang di eksekusi. Program adalah kumpulan intruksi yang ditulis ke dalam bahasa yang di mengerti sistem operasi, sumber daya tersebut dapat berupa CPU time, alamat memori, berkas-berkas & perangkat I/O. Sistem operasi yang bertanggung jawab untuk aktifitas manajemen proses membuat & menghapus proses, pengguna & sistem proses, menunda/melanjutkan proses, menyediakan mekanisme untuk proses sinkronasi, menyediakan mekanisme untuk proses komunikasi, menyediakan mekanisme untuk penanganan deadlock.

b)      Management File

Reprentasi dan data yang berupa kumpulan informasi yang saling berhubung dan disimpan diperangkat penyimpanan. Sistem Operasi harus dapat mengoperasikan dengan baik. Pembuatan berkas atau Directory, penghapusan berkas, pembaca dan penulisan berkas, meletakan berkas pada penyimpanan sekunder.

c)      Management Main Memory

Sistem Operasi untuk mdengatur bagian memory yang sedang digunakan dan mengalokasikan jumlah dan alamat memory yang diperlukan, baik program yang berjalan maupun untuk sistem itu sendiri. Tujuannya agar utility CPU meningkat dan untuk meningkatkan efisiensi memory.





d)      Management I/O

Berfungsi untuk penyanggaan (menampung data sementara dari / ke perangkat Input atau output). Melakukan penjadwalan input/output sistem lebih efisien, menyediakan driver perangkat.

e)      Management Penyimpanan Sekunder

Sarana yang berada satu tingkat dibawah memori utama sebuah komputer dalam hierarki memory, Penyimpanan Sekunder tidak seperti memory utama PC. Penyimpanan sekunder tidak memiliki hubungan langsung dengan processor dengan melalui BUS sehingga harus melewati input/output.

f)       Protection (Keamanan)

Untuk mengontrol akses yang dilakukan oleh program, procesor atau pengguna ke sistem/sumber data.

g)      Jaringan

Kumpulan prosesor yang tidak berbagi memori atau clock. tiap prosesor memiliki memori sementara.

3.      Apa fungsi dari manipulasi file pada system calls?


1).  Kontrol Proses
    Dalam menjalankan fungsi kontrol proses, hal-hal yang dilakukan oleh system call adalah :
- Mengakhiri (end) dan membatalkan (abort)
- Mengambil (load) dan eksekusi (execute)
- Membuat dan mengakhiri proses
- Menentukan dan mengatur atribut proses
- Wait for time
- Wait event, signal event
-  Mengalokasika dan membebaskan memory.

Sebagai contoh, Sistem Operasi pada MS-DOS menggunakan sistem singletasking yang memiliki command interpreter yang mulai bekerja pada saat start. Perhatikan gambar dibawah ini :

MS-DOS Single Tasking System

   Karena single tasking maka akan akan menggunakan metode yang sederhana untuk menjalankan program dant tidak membuat proses baru. Sedangkan kalau pada sistem operasi Unix, dapat menggunakan banyak program.

Unix Multitasking System

2). Manipulasi File

      Fungsi kedua dari System call adalah manipulasi file. Dalam menjalankan fungsi manipulasi file tersebut, hal-hal yang dilakukan adalah :
- Membuat dan menghapus file
- Membuka dan menutup file
- Membaca, menulis, dan mereposisi file
- Menentukan dan mengatur atribut file




3).  Manipulasi Device

      Fungsi ketiga adaah Manipulasi Device. Hal-hal yang dijalankan dalam fungsi ini adalah :
-          Meminta dan membebaskan device- Membaca, menulis dan mereposisi file
-          Menentukan dan mengatur atribut device.

4). Informasi Lingkungan

    Dalam menjalankan fungsi ini, System Call melakukan hal-hal berikut :
- Mengambil atau mengatur atau tanggal
- Mengambil atau mengatur sistem data
- Mengambil atau mengatur proses, file atau atribut-atribut file.

5).  Komunikasi

Hal-hal yang dilakukan dalam fungsi komunikasi System call ini adalah :

- Membuat dan menghapus sambungan komunikasi
- Mengirim dan menerima pesan
- Mentransfer status informasi.
Dalam fungsi komunikasi pada System Call,  terdapat 2 model komunikasi, yaitu :

a. Message-passing model.    Informasi saling ditukarkan melalui fasilitas yang telah ditentukan oleh sistem operasi.
b. Shared-memory Model.     Proses-proses menggunakan map memory untuk mengakses daerah-daerah di memori dengan proses-proses yang lain.
 
Perhatikan contoh proses model komunikasi Message-passing model (a) dan Shared-memory Model (b) pada gambar dibawah ini :

model komunikasi system call








4.      Apa saja keunggulan dari struktur sistem operasi Mikro kernel?

a.       Interface yang seragam. Proses tidak lagi dibedakan, baik antara kernel-level maupun user-level, karena semuanya berkomunikasi via message passing.
  1. Extensibility. Bisa menambahkan fitur-fitur baru tanpa perlu melakukan kompilasi ulang
  2. Flexibility. Fitur-fitur yang sudah ada bisa dikurangi, atau dimodifikasi sesuai dengan kebutuhan sehingga menjadi lebih efisien. Misalnya tidak semua pengguna membutuhkan security yang sangat ketat, atau kemampuan untuk melakukan distributed computing.
  3. Portability. Pada mikro kernel, semua atau sebagian besar kode yang prosesor-spesifik berada di dalamnya. Jadi, proses porting ke prosesor lain bisa dilakukan dengan relatif sedikit usaha. Pada kelompok desktop misalnya, tampaknya dominasi Intel makin kuat. Tapi, sampai seberapa lama itu bisa bertahan? Karena itulah, portability adalah salah satu isu yang sangat penting.
  4. Reliability. Semakin besar suatu software, maka tentulah semakin sulit untuk menjamin reliabilitynya. Desain dengan pendekatan berlapis sangatlah membantu, dan dengan pendekatan mikro kernel bisa lebih lagi. Mikro kernel dapat diuji secara ekstensif karena dia menggunakan API yang sedikit,sehingga bisa meningkatkan kualitas code di luar kernel.
  5. Support for object-oriendted OS. Model mikro kernel sangat sesuai untuk mengembangkan sistem operasi yang berbasis object-oriented. Contoh sistem operasi yang menggunakan mikro kernel adalah Mac OS X dan QNX.Microkernel hanya memiliki fungsi manajemen sederhana untuk mendeliver services :
  • low-level address space management : sistem pengalamatan physical atau virtual untuk memory, network host, peripheral, dan lain-lain.
  • thread management : pengaturan proses (=’molekul’) yang terpecah menjadi thread (=’atom’) dan dijalankan secara paralel.
  • inter-process communication (IPC) : pengaturan komunikasi antar thread pada satu atau beberapa proses. IPC bisa punya ruang lingkup di dalam atau antar computer.
5.      Struktur sistem operasi apakah yang digunakan untuk MAC OS?

mac os.png
Sistem operasi MacOs menggunakan struktur monolitic karena Mac Apple yang semula bernama Mac OS X hingga 2012 dan kemudian OS X hingga 2016, dimulai dengan proyek perusahaan untuk menggantikan OS Mac “klasik”. Sistem itu Mac OS 9 , adalah keturunan langsung dari sistem operasi yang digunakan Apple dalam komputer Macintosh sejak diperkenalkan pada tahun 1984. Namun, macOS saat ini adalah sistem operasi Unix yang dibangun di atas teknologi yang memiliki telah dikembangkan di NeXT dari tahun 1980an hingga Apple membeli perusahaan tersebut pada awal 1997.

struktur-unix.jpg

Ini pertama kali dirilis pada tahun 1999 sebagai Mac OS X Server 1.0 , dengan versi desktop yang dirilis secara luas – Mac OS X 10.0 following pada Maret 2001. Sejak itu, beberapa edisi desktop dan server yang lebih berbeda dari macOS telah dirilis. Dimulai dengan Mac OS X 10.7 Lion , MacOS Server tidak lagi ditawarkan sebagai sistem operasi terpisah sebagai gantinya, alat manajemen server tersedia untuk dibeli sebagai add-on. Dimulai dengan build Intel Mac OS X 10.5 Leopard , sebagian besar rilis telah disertifikasi sebagai sistem Unix yang sesuai dengan Spesifikasi Unix Tunggal .