Full Transcript

Chapter Computer Architecture and Operating System Operating system Operation System atau Sistem Operasi adalah program yang mengontrol pengeksekusian suatu aplikasi dan bekerja sebagai interface antara aplikasi dan computer hardware. OS Memiliki fungsi memberikan layanan kepada user (secara implisi...

Chapter Computer Architecture and Operating System Operating system Operation System atau Sistem Operasi adalah program yang mengontrol pengeksekusian suatu aplikasi dan bekerja sebagai interface antara aplikasi dan computer hardware. OS Memiliki fungsi memberikan layanan kepada user (secara implisit) untuk menjalankan aplikasi user melalui hardware yang berperan sebagai resource. OS mengatur penggunaan hardware untuk menjalankan aplikasi, karena hardware sebagai resource itu terbatas. 4 Komponen utama komputer dan fungsinya Ada 4 Komponen utama Komputer : Processor: Berfungsi untuk melakukan operasi dari data dan instruksi yang diambil dari memory. Main Memory: Berfungsi menyimpan data dan operasi (instruksi). Cara membedakan instruksi dan data dari dalam memori adalah dari urutan pembacaannya. Karena komputer menggunakan preorder, sehingga yang pertama dibaca kemungkinan adalah operasi (cth : 2+3 -> +23) System Bus: Berfungsi untuk menghubungkan komponen utama seperti CPU, Memory dan I/O Device untuk memungkinkan komunikasi antara mereka. I/O Device: Memungkinkan komputer untuk menerima data dari perangkat input dan mengirimkan data ke perangkat output (komunikasi komputer dengan user) Proses yang dilakukan dalam komputer Ada 3 proses yang dilakukan dalam komputer, yaitu sebagai berikut : 3 Tipe System Bus dan 6 Komponen dalam CPU Ada 3 tipe system bus dan masing masing fungsinya : Data Bus: Mengirim data Address Bus: Mengirim address Control Bus: Menentukan operasi (read/write) kepada memory Dalam CPU, ada beberapa komponen dan fungsinya masing masing : Program Counter: Menyimpan address instruksi berikutnya yang akan dieksekusi Instruction Register: Menyimpan instruction yang sedang dieksekusi Memory Address Register (MAR): Menyimpan address memory yang akan diakses Memory Buffer Register (MBR): Menyimpan data yang akan ditulis ke memory atau data baru yang baru saja dibaca dari memory I/O Address Register: Menyimpan alamat perangkat I/O yang akan diakses I/O Buffer Register: Menyimpan data yang akan dikirim ke perangkat I/O atau data yang diterima dari perangkat I/O Alur Fetch (Read) dan Alur Write Berikut ini adalah alur dari read yang terjadi di dalam komputer : 1) Menentukan address instruction menggunakan Memory Address Register (MAR) 2) Mengirimkan address tersebut ke memory melalui address bus 3) Menggunakan Control Bus untuk mengirim sinyal baca (Read Signal) ke memory 4) Mengambil data/instruksi dari memory dan menyimpannya ke Memory Buffer Register (MBR) 5) Transfer dari data ke Instruction Register (IR) melalui data bus Berikut ini adalah alur dari write yang terjadi di dalam komputer : 1) Menentukan address tujuan menggunakan Memory Address Register (MAR). 2) Mengirimkan address tersebut ke memory melalui Address Bus. 3) Memuat data yang akan ditulis ke Memory Buffer Register (MBR). 4) Mengirimkan sinyal tulis (Write Signal) ke memory melalui Control Bus. 5) Transfer data dari MBR ke lokasi memory yang ditentukan melalui Data Bus. Alasan Buffer Register dan Address Register dibedakan Karena pengiriman data pada I/O relatif lambat apabila dibandingkan dengan pengiriman data antar memory dan processor, Sehingga dibedakan agar pengiriman data pada MAR dan MBR tidak ikut lambat. Procedure Call VS Interrupt Procedure Call: Digunakan untuk memanggil atau menjalankan sebuah prosedur atau fungsi secara terstruktur. Proses dijalankan saat program memanggil fungsi/procedure tertentu, sehingga programmer tahu proses procedure call ini berlangsung. Interrupt: Digunakan untuk menanggapi peristiwa atau kondisi tertentu yang memerlukan perhatian segera dan dapat terjadi sewaktu waktu (Contoh: Input). Saat interrupt terjadi, CPU menghentikan proses eksekusi program utama dan beralih ke penanganan Interrupt. Sehingga programmer tidak mengetahui adanya interrupt. Jenis Interrupts Program : Terjadi oleh kondisi yang muncul karena eksekusi intruksi Timer : Terjadi oleh waktu yang ada di processor I / O : Terjadi oleh I / O controller. Hardware Failure : Terjadi karena adanya kesalahan Multiple Interrupt Jika program sedang berjalan, kemudian ada interrupt, dan di tengah interrupt ada interrupt lainnya, maka penanganan interrupt baru ini tergantung status prioritasnya. Apabila status prioritasya lebih tinggi, maka akan dijalankan dan menjadi nested interrupt processing, jika prioritasnya sama atau lebih rendah dari interrupt yang sedang berlangsung, maka akan ditunda sampai interrupt pertama selesai, sehingga menjadi sequential interrupt processing. Chapter Memory Memory Hierarchy Memory Hierarchy adalah konsep pengaturan berbagai macam memory dengan kecepatan dan kapasitas yang berbeda untuk mencapai keseimbangan antara kinerja (kecepatan akses) dan biaya. Tujuan Memory Hierarchy adalah memaksimalkan performa sistem komputer dengan menggunakan kombinasi berbagai tipe memory untuk menyimpan data yang sering digunakan dan data yang jarang diakses Memory Hierarchy Pyramid Berikut ini adalah ilustrasi Memory Hierarchy dengan pyramid Semakin ke bawah maka akan berlaku 3 sifat ini : Greater Storage (Penyimpanan yang lebih besar) Slower Access Time (Waktu akses yang lebih lambat) Less Cost (Biaya yang lebih kecil) 2 macam memory berdasarkan kebutuhan akses Ada 2 macam memory berdasarkan kebutuhan aksesnya : Volatile Memory: Memory yang digunakan untuk menyimpan data sementara yang akan digunakan secara langsung. Contoh: Register, Main Memory, Cache Persistence Memory: Memory yang digunakan untuk menyimpan data yang tidak akan langsung digunakan, sehingga lebih digunakan untuk backup. Con toh: External Memory. Perbedaan Inboard Memory dan Outboard Storage Inboard memory cara aksesnya tidak sequential, melainkan random (Random Access), sedangkan Outboard storage diakses secara sequential. Cache Data yang dibaca dari main memory ke processor tidak hanya 1 byte data yang dibutuhkan saja, melainkan 1 kumpulan data (block). Data diterima oleh cache, kemudian dikirim ke processor data yang dibutuhkannya. Chapter Process & Thread Process Process adalah running program. Process adalah pengeksekusian (aktivitas) yang dilakukan dalam sebuah program. Analogi: Untuk membuat bahan masak menjadi makanan, diperlukan bahan-bahan, resep masakan, dan kegiatan memasak. Kegiatan memasak disini berperan sebagai process. Sedangkan resep masakan berperan sebagai program karena sifatnya read-only. Syarat Process : Time (Waktu) Space (Ruang) Subject (Subjek yang menjalankan) Uni-Processor System Dalam sistem uni-processor, hanya satu CPU yang tersedia untuk mengeksekusi proses-proses yang ada. Oleh karena itu, proses-proses tersebut harus dijadwalkan secara bergantian menggunakan teknik seperti time-sharing untuk memastikan semua proses mendapatkan waktu eksekusi yang adil. Contoh analogi: Ada 4 orang (A, B, C, D) yang akan memerlukan 1 kalkulator, hanya ada 1 kalkulator Penyelesaian: Kalkulator digunakan secara bergantian dengan waktu 3 menit. Berikut ini alurnya : Dijalankan Pertama Kali Dijalankan kedua dan seterusnya Reset calculator Reset calculator Memulai pekerjaan Restore progress Jika waktu habis save progress Memulai pekerjaan Beri ke orang lain Jika waktu habis save progress Beri ke orang lain Ilustrasi Process Sistem waktu dalam analogi ini adalah adanya penggunaan interrupt untuk berpindah dari 1 proses ke proses lain. Process Creation Empat peristiwa utama yang menyebabkan proses dibuat: 1. Inisialisasi sistem. 2. Eksekusi panggilan sistem untuk pembuatan proses oleh proses yang sedang berjalan. 3. Permintaan pengguna untuk membuat proses baru. 4. Inisiasi pekerjaan batch. Process Termination Setelah sebuah proses dibuat, proses tersebut mulai berjalan dan melakukan tugasnya. Namun cepat atau lambat, proses baru akan berakhir, biasanya karena salah satu dari kondisi berikut: 1. Normal exit (voluntary). 2. Error exit (voluntary). 3. Fatal error (involuntary). 4. Killed by another process (involuntary) Process States State process ada 3 macam, bisa dilihat pada ilustrasi berikut ini : Dalam process (running program) ada state running, ini karena ada process yang berjalan dan ada process yang menunggu untuk di run (dalam schedule) Berikut ini perbedaan run, ready, dan blocked : Run: Process yang memiliki resource dan ada CPU yang dapat digunakan sehingga dijalankan saat itu juga Ready: Process yang memiliki resource, namun tidak ada CPU yang dapat digunakan, sehingga harus menunggu CPU hingga bisa digunakan. Blocked: Process yang tidak memiliki resource yang dibutuhkan (misal membutuhkan input, namun belum ada), meski ada CPU yang dapat digunakan atau tidak, tetap tidak bisa dijalankan sampai resource yang dibutuhkan didapatkan. Race Condition Race condition terjadi ketika dua atau lebih proses atau thread mengakses resource yang sama secara bersamaan, dan hasil akhir dari eksekusi bergantung pada urutan akses atau update terhadap resource tersebut. Karena proses-proses ini berjalan secara paralel tanpa koordinasi yang tepat, hasil akhirnya bisa tidak dapat diprediksi atau berbeda dari yang diharapkan, tergantung pada proses mana yang terakhir mengupdate resource tersebut. Untuk menghindari race condition, kita perlu menggunakan mekanisme sinkronisasi seperti locking atau antrian (queue) proses. Dalam konteks ini, "antri" berarti hanya satu proses yang diizinkan mengakses resource tertentu pada satu waktu, sementara proses lain harus menunggu giliran. Dengan memastikan resource hanya diakses oleh satu proses pada satu waktu, kita dapat mencegah terjadinya konflik data atau perilaku tak terduga. Context Switching: Perpindahan antar process Resource yang di sharing harus dikuasai sampai selesai. Area yang dapat menyebabkan race disebut critical region. Dalam lock, critical region harus dibuat sekecil mungkin. Deadlock Apabila resource yang dishare banyak dan proses-proses yang mengakses resource tersebut saling menunggu resource yang sedang digunakan oleh proses lain, kondisi deadlock dapat terjadi. Deadlock adalah situasi di mana dua atau lebih proses saling terkunci karena masing-masing proses menunggu resource yang sedang dipegang oleh proses lain, sehingga tidak ada yang dapat melanjutkan eksekusi. Deadlock terkait dengan race condition karena keduanya melibatkan masalah akses terhadap resource bersama, namun mereka berbeda dalam penyebab dan dampaknya. Untuk menghindari deadlock, diperlukan strategi pengelolaan resource yang baik, seperti menghindari circular wait (saling menunggu) dan memesan resource dalam urutan yang tetap. Contoh Kasus : Misal ada resource X dan Y, A menjalankan process dengan lock resource X, kemudian B menjalankan process dengan Lock resource Y karena resource X sudah di lock A. A dan B bisa selesai apabila menggunakan kedua resource, sehingga A menunggu B release resource Y dan B menunggu A release resource X. Sehingga terjadilah kondisi saling tunggu-menunggu (deadlock) Ketika ada shared resource, maka ada problem race condition, dimana tergantung pada siapa yang terakhir update, maka digunakan mutual exclusion, agar resource di lock, namun dengan mutual exclusion akan menimbulkan masalah deadlock. Mutual exclusion memastikan bahwa hanya satu proses atau thread yang dapat mengakses critical region pada satu waktu, mencegah terjadinya data corruption atau state yang tidak konsisten1. Ini dicapai dengan menggunakan mekanisme sinkronisasi seperti locks atau semaphores untuk mengontrol akses ke resource bersama Thread : Single Thread & Multi Thread Dalam komputasi, thread adalah unit eksekusi terkecil yang dapat berjalan secara independen di dalam suatu proses. Sebuah proses dapat terdiri dari satu atau lebih thread yang bekerja bersama untuk menyelesaikan tugas, di mana setiap thread dapat menangani bagian-bagian yang berbeda dari proses tersebut. Berikut ini ilustrasi dari thread (single vs multi) Process diibaratkan sebagai 1 kegiatan. Kegiatan bisa berjalan apabila ada resource dan subject. Contoh: memasak, ada resource berupa bahan masak dan ada chef sebagai subject yang melakukan kegiatan memasak ini. Apabila tradisional (Single Thread), maka hanya ada 1 chef (subject) yang melakukan semua kegiatan pada process memasak (persiapan, memasak, garn ishing) Apabila multithread, maka dalam 1 space (lingkup) process memasak akan ada lebih dari 1 chef (subject) yang melakukan masing masing kegiatan (persiapan, memasak, garnishing) yang dilakukan oleh orang berbeda sehingga lebih efisien. Pada ilustrasi memasak, jika menggunakan single thread, hanya ada satu chef yang mengurus semua tahap memasak, mulai dari persiapan hingga penyajian. Sedangkan pada multi-thread, setiap tahap, seperti persiapan, memasak, dan garnishing, dilakukan oleh chef yang berbeda, sehingga proses memasak menjadi lebih cepat dan efisien. Secara singkat perbedaan single-thread dan multi-thread adalah sebagai berikut: Single-thread: 1 unit penyelesai dalam 1 environment di dalam process Multi-thread: > 1 unit penyelesai dalam 1 environment di dalam process Semua tergantung OS, ada OS yang bisa mengatur unit process (thread) nya, dan ada juga yang hanya bisa mengatur sampai process saja. Dalam state ready di process state, apabila ada multiple process, maka aka nada selection. Apabila ada selection maka ada yang harus diseleksi, yaitu kriteria. Kriteria ini berdasarkan kebutuhan. Scheduling Scheduling adalah mekanisme dalam sistem operasi untuk mengatur dan menentukan urutan eksekusi proses di CPU. Scheduler bertugas memutuskan proses mana yang dijalankan terlebih dahulu berdasarkan prioritas dan kondisi sistem. Tujuannya adalah untuk mengoptimalkan penggunaan resource dan memastikan eksekusi proses berjalan efisien. Kapan Harus Schedule Scheduling diperlukan ketika ada lebih dari satu proses yang siap dieksekusi pada saat yang sama. Ini terjadi, misalnya, ketika proses baru tiba, proses lama selesai, atau ketika proses dihentikan sementara karena menunggu resource. Scheduler akan memutuskan proses mana yang dijalankan untuk menghindari waktu idle pada CPU. Kategori Scheduling system ada 3 macam : Batch System: Proses dilakukan satu persatu, sehingga 1 proses dulu baru proseslain Interactive: Menangani semua proses, namun semakin banyak proses yang dilayani akan semakin lambat Real-time: Ada limit waktu pada layanan Yang digunakan windows adalah interactive. Scheduling Algorithm Goals Semua Sistem Fairness: Memberikan setiap proses porsi yang adil dalam penggunaan CPU. Policy Enforcement: Memastikan kebijakan yang telah ditetapkan dalam sistem dijalankan dengan konsisten. Balance: Menjaga semua bagian sistem tetap sibuk dan aktif. Sistem Batch Throughput: Memaksimalkan jumlah pekerjaan yang diselesaikan per jam. Turnaround time: Meminimalkan waktu antara pengajuan dan penyelesaian tugas. CPU Utilization: Memastikan CPU selalu digunakan tanpa waktu menganggur. Sistem Interaktif Response time: Merespons permintaan dengan cepat. Proportionality: Memenuhi ekspektasi pengguna terhadap kinerja sistem. Sistem Real-Time Meeting Deadlines: Menghindari hilangnya data dengan menyelesaikan tugas sebelum batas waktu. Predictability: Mencegah penurunan kualitas, terutama pada sistem multimedia. Scheduling Algorithm A. Scheduling in Batch Systems 1. First Come, First Served (FCFS) Definisi: FCFS adalah algoritma scheduling di mana proses dijalankan sesuai urutan kedatangan mereka. Proses yang datang lebih dulu akan dieksekusi terlebih dahulu tanpa mempertimbangkan durasi proses. Cara kerjanya sederhana, proses pertama yang tiba langsung mendapat CPU, dan proses lain menunggu sampai proses pertama selesai. Analogi: Seperti antrian di kasir toko, siapa yang datang lebih dulu akan dilayani terlebih dahulu tanpa memandang besar atau kecilnya belanjaan. 2. Shortest Job First (SJF) Definisi: SJF adalah algoritma yang memilih proses dengan waktu eksekusi paling pendek terlebih dahulu. Ini mengurangi waktu tunggu rata-rata karena proses yang lebih pendek akan selesai lebih cepat, meskipun kadang membutuhkan pengetahuan sebelumnya tentang durasi proses. Algoritma ini optimal dalam batch systems jika informasi waktu eksekusi diketahui. Analogi: Seperti di toko reparasi, barang dengan kerusakan kecil (waktu perbaikan singkat) dikerjakan lebih dulu dibandingkan dengan barang yang membutuhkan perbaikan lama. 3. Shortest Remaining Time Next (SRTN) Definisi: SRTN adalah versi preemptive dari SJF, di mana proses yang sedang berjalan bisa dihentikan jika ada proses baru dengan waktu eksekusi yang lebih pendek. CPU selalu diberikan kepada proses dengan waktu tersisa paling sedikit, memungkinkan proses cepat dieksekusi secepat mungkin. Analogi: Seperti perbaikan di bengkel, jika ada pekerjaan singkat yang datang, montir akan menghentikan pekerjaan saat ini untuk segera menyelesaikan pekerjaan yang lebih cepat. B. Scheduling in Interactive Systems 1. Round-Robin Scheduling Definisi: Round-robin memberikan setiap proses waktu CPU dalam jumlah yang sama, atau disebut time slice. Setelah waktu habis, proses tersebut masuk ke antrian lagi dan proses berikutnya dieksekusi. Ini memastikan semua proses mendapatkan kesempatan adil untuk menggunakan CPU. Analogi: Seperti permainan catur dengan waktu terbatas, setiap pemain mendapatkan giliran bergantian untuk bermain dalam waktu yang sama sebelum giliran berpindah. 2. Priority Scheduling Definisi: Proses diberi prioritas, dan proses dengan prioritas tertinggi dijalankan terlebih dahulu. Jika dua proses memiliki prioritas yang sama, mereka dijalankan berdasarkan aturan lain, seperti FCFS. Prioritas bisa diatur secara statis atau dinamis. Analogi: Seperti triase di rumah sakit, pasien dengan kondisi lebih serius akan dilayani lebih dulu meskipun pasien lain datang lebih awal. 3. Multiple Queues Definisi: Proses dikelompokkan ke dalam beberapa antrian berdasarkan karakteristik atau prioritas mereka. Setiap antrian dapat memiliki algoritma scheduling yang berbeda. Misalnya, proses CPU-bound mungkin berada di antrian berbeda dengan proses I/O- bound. Analogi: Seperti antrian layanan di bandara, di mana ada jalur berbeda untuk penumpang VIP dan penumpang reguler, dengan aturan layanan yang berbeda. 4. Shortest Process Next Definisi: Algoritma ini mirip dengan SJF, tetapi diterapkan dalam sistem interaktif di mana proses yang memiliki perkiraan waktu tersingkat akan dijalankan terlebih dahulu. Proses yang baru tiba akan selalu dibandingkan dengan proses yang sedang berjalan. Analogi: Seperti seorang koki di dapur, mereka akan menyelesaikan pesanan yang lebih mudah atau cepat sebelum melanjutkan pesanan besar yang membutuhkan waktu lebih lama. 5. Guaranteed Scheduling Definisi: Algoritma ini memastikan setiap proses mendapatkan bagian yang adil dari waktu CPU sesuai perjanjian. Jika satu proses menggunakan lebih banyak waktu daripada yang seharusnya, prioritasnya akan diturunkan. Analogi: Seperti kontrak kerja karyawan, di mana setiap karyawan dijamin mendapatkan jam kerja yang adil sesuai kesepakatan. 6. Lottery Scheduling Definisi: Setiap proses diberikan tiket, dan tiket tersebut diundi untuk menentukan proses mana yang akan mendapat waktu CPU. Proses dengan lebih banyak tiket memiliki peluang lebih besar untuk terpilih, tetapi semua proses memiliki peluang untuk mendapatkan giliran. Analogi: Seperti undian berhadiah, semakin banyak tiket yang dimiliki seseorang, semakin besar kemungkinan mereka memenangkan hadiah, tetapi semua peserta memiliki kesempatan. 7. Fair-Share Scheduling Definisi: Algoritma ini menjamin bahwa kelompok pengguna atau proses mendapatkan bagian CPU yang proporsional dengan kebutuhan atau perjanjiannya. Alih-alih fokus pada proses individual, algoritma ini mengalokasikan resource berdasarkan grup. Analogi: Seperti pembagian makanan di keluarga besar, di mana setiap anggota keluarga mendapatkan porsi yang adil sesuai dengan kebutuhan mereka. C. Scheduling in Real-Time Systems Dalam sistem real-time, algoritma scheduling berfokus pada pemenuhan deadline yang ketat. Proses harus dijalankan sebelum batas waktu yang ditetapkan untuk menghindari kegagalan sistem. Contohnya termasuk Rate Monotonic Scheduling dan Earliest Deadline First yang memprioritaskan proses berdasarkan seberapa dekat atau pentingnya deadline tersebut.

Use Quizgecko on...
Browser
Browser