Minggu, 15 Maret 2020

STRUKTUR DAN PROSES OPERASI SISTEM


Pertemuan 3
1.    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.

2.    Komponen pada sistem operasi modern, diantaranya :
-       Management process
-       Management file
-       Management main memory
-       Management I/O
-       Management penyimpanan sekunder
-       Protection (kemanan)
-       Jaringan

3.    Fungsi manipulasi system calls, yaitu  sebagai :
-       Kontrol proses
-       Manpulasi file
-       Manipulasi device
-       Informasi lingkungan
-       Komunikasi

4.    Keunggulan mikrokernel, yaitu :
-       Interface yang seragam. Proses tidak lagi dibedakan, baik antara kernel-level maupun user-level, karena semuanya berkomunikasi via message passing.
-       Extensibility. Bisa menambahkan fitur-fitur baru tanpa perlu melakukan kompilasi ulang
-       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.
-       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.
-       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.    Struktur sistem operasi yang digunakan Mac OS adalah struktur monolitic


Pertemuan 4

1.    Multiprogramming adalah kegiatan menjalankan beberapa program pada memori pada satu waktu.

2.    Aktivitas yang dilibatkan pada saat penciptaan proses :
-       Menamai (memberi identitas) proses
-       Menyisipkan proses pada senarai proses atau tabel proses
-       Menentukan prioritas awal proses
-       Menciptakan PCB
-       Mengalokasikan sumber daya awal bagi proses

3.    Alasan penghancuran proses karena kegagalan input/output adalah munculnya kesalahan pada masukan/keluaran, seperti ketidakmampuan menemukan file, kegagalan membaca, atau menulis setelah sejumlah maksimum percobaan ditentukan (misal : area rusak didapatkan pada disk, atau operasi tak valid seperti membaca dari line printer)

4.    Metode yang digunakan sistem operasi dalam pengendalian antarproses :
-       Saling melanjutkan (interleave), sistem operasi harus dapat kembali melanjutkan proses setelah melayani proses lain.
-       Kebijaksanaan tertentu, sistem operasi harus mengalokasikan sumber daya ke proses berdasarkan prioritasnya.
-       Komunikasi antarproses dan penciptaan proses, sistem operasi harus mendukung komunikasi dan penciptaan antarproses (menstrukturkan aplikasi)

5.    Operasi-operasi yang dilakukan sistem oprasi terhadap proses :
-       Penciptaan proses
-       Penghancuran/terminasi proses
-       Penundaan proses
-       Pelanjutan kembali proses
-       Perubahan prioritas proses
-       Memblock proses
-       Membangunkan proses
-       Penjadwalan proses
-       Memungkinkan proses berkomunikasi dengan proses lain

THREAD DAN PENJADWALAN CPU




1.    Thread dalam sistem operasi dapat diartikan sebagai sekumpulan perintah (instruksi) yang dapat dilaksanakan (dieksekusi) secara sejajar dengan ulir lainnya, dengan menggunakan cara time slice (ketika satu CPU melakukan perpindahan antara satu ulir ke ulir lainnya) atau multiprocess (ketika ulir-ulir tersebut dilaksanakan oleh CPU yang berbeda dalam satu sistem). 

2.    Perbedaan proses Thread tunggal (Single Thread) dengan Thread banyak (Multi Thread) yaitu single thread hanya dapat mengeksekusi satu thread pada satu waktu, sedangkan multi thread dapat mengeksekusi sejumlah thread dalam satu waktu.


3.    Thread terdiri dari 2 macam, yaitu : Single Thread dan Multi Thread.

4.    Karena pengaturan thread dilakukan oleh sistem operasi maka pembuatan dan pengaturan kernel thread lebih lambat dibandingkan user thread. Maka Kernel Level Thread dapat dikatakan lebih baik dari User Level Thread adalah thread diatur oleh kernel, karena itu jika sebuah thread menjalankan blocking system call maka kernel dapat menjadualkan thread lain di aplikasi untuk melakukan eksekusi. Kemudian pada lingkungan multiprocessor, kernel dapat menjadual thread-thread pada processor yang berbeda.


5.      Keuntungan Multi-Threading
-    Responsive; tanggap: Multi-Threading mengizinkan program untuk berjalan terus walau-pun pada bagian program tersebut di block atau sedang dalam keadaan menjalankan operasi yang lama/ panjang. Sebagai contoh, multithread web browser dapat mengizinkan pengguna berinteraksi dengan suatu thread ketika suatu gambar sedang diload oleh thread yang lain.
-    Pembagian sumber daya: Secara default, thread membagi memori dan sumber daya dari proses. Ketika thread berjalan pada data yang sama, thread tersebut bisa berbagi cache memory.
-  Ekonomis: Mengalokasikan memori dan sumber daya untuk membuat proses adalah sangat mahal. Alternatifnya, karena thread membagi sumber daya dari proses, ini lebih ekonomis untuk membuat threads.
-  Pemberdayaan arsitektur multiprosesor: Keuntungan dari multi-threading dapat ditingkatkan dengan arsitektur multiprosesor, dimana setiap thread dapat jalan secara paralel pada prosesor yang berbeda. Pada arsitektur prosesor tunggal, CPU biasanya berpindah-pindah antara setiap thread dengan cepat, sehingga terdapat ilusi paralelisme, tetapi pada kenyataannya hanya satu thread yang berjalan di setiap waktu.

  Kerugian Multi-Threading
-   Multiple thread bisa mengganggu satu sama lain saat berbagi hardware resource, misalnya chace memory.
-  Execution time (waktu proses) dari sebuah single-thread tidak dapat diimprove (ditambah), tapi malah bisa diturunkan. Ini terjadi karena penurunan frequensi yang dibutuhkan ketika terjadi pergantian thread yang berjalan.
-  Harus ada dukungan dari hardware ataupun software untuk melakukan multi-Threading.

6.    Penjadwalan CPU adalah pemilihan proses dari antrian ready untuk dapat dieksekusi. Penjadwalan CPU merupakan konsep dari multiprogramming, dimana CPU digunakan secara bergantian untuk proses yang berbeda.

7.    . Kriteria penjadualan CPU yang optimal, diantaranya :
-          Memaksimumkan utilisasi CPU
-          Memaksimumkan throughput
-          Meminimumkan turnaround time
-          Meminimumkan waiting time
-          Meminimumkan response time

8.    SJF (Shortest - Job - First) adalah Penggabungan setiap proses merupakan panjang dari brust CPU berikutnya. Panjang tersebut digunakan untuk penjadwalan proses pada waktu terpendek.
  Contoh algoritmanya :
    Ada 4 buah proses yang datang berurutan yaitu P1 dengan arrival time pada 0.0 ms dan burst time 7 ms, P2 dengan arrival time pada 2.0 ms dan burst time 4 ms, P3 dengan arrival time pada 4.0 ms dan burst time 1 ms, P4 dengan arrival time pada 5.0 ms dan burst time 4 ms. Hitunglah waiting time rata-rata dan turnaround time dari keempat proses tersebut dengan mengunakan algoritma SJF.

 Average waiting time rata-rata untuk ketiga proses tersebut adalah sebesar (0 +6+3+7)/4=4 ms.
Average waiting time rata-rata untuk ketiga prses tersebut adalah sebesar (9+1+0+2)/4=3 ms.

9.    Jenis-jenis penjadwalan, yaitu :
   -  Non-preemptive, algoritma didesain agar setelah proses yang sedang berjalan memasuki negara (adalah proses diperbolehkan), tidak dihapus dari prosesor sampai selesai dengan waktu layanan (secara eksplisit atau hasil prosesor).
   -  Preemptive mempunyai arti kemampuan sistem operasi untuk memberhentikan sementara proses yang sedang berjalan untuk memberi ruang kepada proses yang prioritasnya lebih tinggi.

10.  Penjadwalan non preemptive terjadi jika proses sedang menggunakan CPU proses tersebut akan membawa CPU sampai proses tersebut melepaskannya (berhenti dalam keadaan wait). Dapat dikatakan bahwa nonpreemptive ini merupakan proses yang hanya dapat melakukan prosessekali run saja Kemudian diselesaikan sampai akhir proses tersebut tanpa ada proses yang menyela proses ini. Sedangkan penjadwalan preemptive terjadi 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 nonpreemptive tadi, yakni saat proses ini bekerja maka proses dapat diserap oleh proses lain sehingga proses ini akan kembali diproses setelah CPU menyelesaikan proses yang menyela tadi.