Kamis, 24 Oktober 2024

Konkurensi

 Konkurensi


Sinkronisasi Proses

Sinkronisasi Proses adalah koordinasi pelaksanaan beberapa proses dalam sistem multiproses untuk memastikan bahwa proses-proses tersebut mengakses sumber daya bersama dengan cara yang terkendali dan dapat diprediksi. Tujuannya adalah untuk mengatasi masalah kondisi persaingan dan masalah sinkronisasi lainnya dalam sistem yang berjalan bersamaan.

Tujuan utama sinkronisasi proses adalah untuk memastikan bahwa beberapa proses mengakses sumber daya bersama tanpa mengganggu satu sama lain dan untuk mencegah kemungkinan data yang tidak konsisten karena akses bersamaan. Untuk mencapai hal ini, berbagai teknik sinkronisasi seperti semaphore, monitor, dan critical section digunakan.

Dalam sistem multiproses, sinkronisasi diperlukan untuk memastikan konsistensi dan integritas data, serta untuk menghindari risiko kebuntuan dan masalah sinkronisasi lainnya. Sinkronisasi proses merupakan aspek penting dari sistem operasi modern, dan memainkan peran krusial dalam memastikan fungsi sistem multiproses yang benar dan efisien.

Apa itu Proses?

Proses adalah program yang sedang berjalan atau program yang sedang dieksekusi disebut proses. Proses mencakup kode program dan semua aktivitas yang dibutuhkan untuk menjalankan tugasnya, seperti menggunakan CPU, memori, dan sumber daya lainnya. Anggaplah proses sebagai tugas yang sedang dikerjakan komputer, seperti membuka peramban web atau memutar video.

Jenis Proses

Berdasarkan sinkronisasi, proses dikategorikan menjadi salah satu dari dua jenis berikut:

  • Proses Independen : Eksekusi satu proses tidak memengaruhi eksekusi proses lainnya.
  • Proses Kooperatif : Suatu proses yang dapat mempengaruhi atau dipengaruhi oleh proses lain yang dijalankan dalam sistem.
Masalah sinkronisasi proses muncul dalam kasus proses Kooperatif juga karena sumber daya dibagi dalam proses Kooperatif.

Konkurensi

Dalam ilmu komputer, konkurensi adalah kemampuan dari unit-unit program (algoritma atau masalah) yang berbeda untuk dieksekusi tanpa mempedulikan urutan, namun tidak memengaruhi hasil akhir dari program tersebut. Sehingga ini memungkinkan untuk melakukan eksekusi pararel dari sebuah unit konkurensi/program, yang mana bisa secara signifikan meningkatkan kecepatan dari pengeksekusian unit di dalam sistem dengan banyak prosesor atau core. Dalam istilah yang lebih teknis, konkurensi ini merujuk pada pemisahan properti dari sebuah program, algoritma, atau masalah ke dalam urutan-urutannya komponent atau unit itu sendiri.

Mutual Exclusion

Mutual Exclusion merupakan properti sinkronisasi proses yang menyatakan bahwa “ tidak ada dua proses yang dapat berada di bagian kritis pada titik waktu tertentu ”. Istilah ini pertama kali dicetuskan oleh Dijkstra . Setiap teknik sinkronisasi proses yang digunakan harus memenuhi properti mutual exclusion, yang tanpanya tidak mungkin untuk menghilangkan kondisi race. 

Kebutuhan untuk saling mengecualikan muncul bersamaan dengan konkurensi. Ada beberapa jenis eksekusi konkurensi:

Penanganan interupsi
  • Proses/utas yang disisipkan dan dijadwalkan terlebih dahulu
  • Cluster multiprosesor, dengan memori bersama
  • Sistem terdistribusi
  • Metode pengecualian bersama digunakan dalam pemrograman bersamaan untuk menghindari penggunaan sumber daya umum secara bersamaan, seperti variabel global, oleh bagian kode komputer yang disebut bagian kritis.
Persyaratan pengecualian bersama adalah bahwa ketika proses P1 mengakses sumber daya bersama R1, proses lain tidak boleh dapat mengakses sumber daya R1 hingga proses P1 menyelesaikan operasinya dengan sumber daya R1.

Deadlock Startvation

Deadlock terjadi ketika setiap proses memegang satu sumber daya dan menunggu sumber daya lain yang dipegang oleh proses lain. Kondisi yang diperlukan agar deadlock terjadi adalah Mutual Exclusion, Hold and Wait, No Preemption, dan Circular Wait. Dalam hal ini, tidak ada proses yang memegang satu sumber daya dan menunggu sumber daya lain yang dieksekusi. Misalnya, dalam diagram di bawah ini, Proses 1 memegang Sumber Daya 1 dan menunggu Sumber Daya 2 yang diperoleh oleh Proses 2, dan Proses 2 menunggu Sumber Daya 1. Oleh karena itu, baik proses 1 maupun proses 2 berada dalam deadlock.

Dengan kata lain, “Deadlock adalah situasi di mana dua atau lebih proses membutuhkan sumber daya untuk menyelesaikan eksekusinya, tetapi sumber daya tersebut dipegang oleh proses lain. Akibatnya, eksekusi proses tersebut tidak selesai.”

Misalnya, ada dua orang teman yang sama-sama ingin bermain gim komputer, sehingga mereka bertengkar. Yang satu memiliki kendali jarak jauh, dan yang satu lagi memiliki CD gim.

Ada Empat Kondisi Yang Mungkin Terjadi Pada Deadlock
  1. Mutual Exclusion: Menyatakan bahwa satu proses hanya dapat mengakses sebuah sumber daya pada satu titik waktu saja.
  2. Tahan dan Tunggu: Satu atau beberapa proses sedang menunggu proses lainnya, yang pada gilirannya menahan sumber daya yang ditunggu oleh proses tersebut.
  3. Tidak Ada Pendahuluan: Seseorang tidak dapat memaksa sumber daya untuk dihapus dari proses yang memilikinya.
  4. Penantian Melingkar: Terdapat suatu rantai proses yang bersifat siklus, dan setiap proses memegang paling sedikit satu sumber daya dan menunggu suatu proses yang memegang sumber daya yang dibutuhkan oleh proses berikutnya yang langsung berurutan.
Starvation adalah masalah yang terjadi ketika proses berprioritas tinggi terus berjalan dan proses berprioritas rendah terblokir untuk waktu yang tidak terbatas. Dalam sistem komputer yang sangat terbebani, aliran proses berprioritas tinggi yang stabil dapat mencegah proses berprioritas rendah untuk mendapatkan CPU . Dalam starvation, sumber daya terus digunakan oleh proses berprioritas tinggi. Masalah starvation dapat diatasi dengan menggunakan Aging. Dalam Aging, prioritas proses yang menunggu lama secara bertahap ditingkatkan.







Disusun Oleh : Delvira Nayla Hardiana
NIM                : 2023240055

Manajemen Memori

 Manajemen Memori


Penjelasan

Manajemen memori adalah proses dalam sistem komputer yang bertujuan mengatur penggunaan RAM (Random Access Memory).

Proses ini tidak hanya tentang mengalokasikan dan mendesalokasikan memori untuk aplikasi yang berjalan, tetapi juga mengelola perpindahan data antara memori utama dan sekunder.

Dengan manajemen memori, setiap aplikasi mendapat bagian memori yang cukup, memastikan sistem dapat menjalankan program yang memerlukan lebih banyak memori daripada yang tersedia. Hal ini dilakukan dengan cara cerdas, seperti memindahkan data yang tidak aktif ke memori sekunder, sehingga memori utama dapat digunakan untuk tugas yang lebih mendesak.

Selain itu, manajemen memori juga berperan dalam melindungi data yang disimpan. Perlindungan ini termasuk mencegah kerusakan data yang bisa terjadi jika beberapa proses mencoba mengakses memori yang sama secara bersamaan.

Tanpa manajemen memori yang tepat, sistem komputer bisa mengalami masalah serius, mulai dari penurunan kinerja sampai kegagalan total.

Fungsi

Berikut beberapa fungsi utama dari manajemen memori berdasarkan Scaler dan StudySmarter:

  1. Pelacakan memori: manajemen memori melibatkan pelacakan setiap byte memori dalam sistem. Proses ini termasuk mengetahui lokasi memori yang sedang digunakan dan yang tersedia, serta mengatur memori untuk berbagai proses yang berjalan dalam sistem operasi.
  2. Alokasi dan dealokasi memori: salah satu tugas utama manajemen memori adalah mengalokasikan dan mendesalokasikan ruang memori sesuai kebutuhan proses sistem. Tugas ini termasuk mengatur memori untuk aplikasi yang sedang berjalan dan mengosongkan memori yang tidak lagi digunakan.
  3. Mengelola swap room: manajemen memori juga melibatkan pengelolaan swap room, yaitu ruang yang dipakai untuk menyimpan halaman memori tidak aktif. Ini membantu dalam memaksimalkan penggunaan memori yang tersedia.
  4. Implementasi kebijakan alokasi memori: manajemen memori mencakup penerapan kebijakan untuk alokasi memori, seperti menentukan kapan dan bagaimana memori harus dialokasikan atau ditarik kembali dari proses.
  5. Optimasi sumber daya: melalui alokasi dan dealokasi memori yang efisien, manajemen memori membantu mengoptimalkan penggunaan sumber daya, sehingga meningkatkan kecepatan operasional dan mengurangi pemborosan sumber daya.
  6. Dukungan multi-programming: manajemen memori membantu eksekusi simultan dari banyak proses dengan membagi dan mengatur memori yang tersedia di antara mereka.

Contoh

Berdasarkan informasi dari StudySmarter, berikut adalah beberapa contoh praktis dari manajemen memori dalam sistem komputer:

  • Multitasking pada smartphone
Setiap aplikasi atau tugas yang berjalan secara bersamaan pada smartphone dikelola oleh sistem operasi. Manajemen memori memastikan setiap aplikasi mendapatkan segmen memori tertentu. Saat user beralih antar aplikasi, sistem operasi menyimpan status aplikasi di memori, memungkinkan multitasking tanpa membebani sumber daya yang tersedia.

  • Manajemen tab pada web browser
Dalam web browser, setiap tab yang dibuka memerlukan memori untuk penyimpanan. Manajemen memori memastikan memori di tab yang tidak aktif dibuat tersedia untuk tab yang aktif, meningkatkan user experience dan efisiensi sistem.

  • Garbage collection dalam bahasa pemrograman
Dalam bahasa pemrograman seperti Java dan Python, garbage collection adalah contoh manajemen memori otomatis. Garbage collector berusaha mengambil kembali memori yang digunakan oleh objek yang tidak lagi digunakan program, mengurangi kebocoran memori dan meningkatkan efisiensi program.

  • Manajemen memori dalam video game
Game sering memerlukan sumber daya memori tinggi. Dalam hal ini, manajemen memori penting untuk memperlancar pengalaman bermain. Game menggunakan teknik seperti object pooling dan metode garbage collection untuk mengklaim kembali memori yang tidak digunakan.

Sabtu, 05 Oktober 2024

Skema Dasar Sistem Komputer dan Perangkat Lunak

Perangkat Keras


Komponen fisik komputer yang terdiri dari rangkaian elektronika dan peralatan mekanis lainnya. 
Pada abstraksi tingkat tinggi terdiri dari empat komponen, yaitu : 
  1. Pemroses (Processor),
  2. Memori Utama (Main Memory),
  3. Perangkat masukan dan keluaran (I/O Device) 4. Interkoneksi antar komponen (user interface, device controler).

Pemroses

Pemroses bisa juga disebut CPU (Central Processing Unit). Selain itu, Pemroses merupakan jantung dari komputer. Pemroses juga berfungsi mengendalikan operasi komputer dan melakukan fungsi pemrosesan data.
Pemroses menghitung, melakukan operasi logic dan mengelola aliran data dengan membaca instruksi dari memori dan mengeksekusinya. 
Operasi-operasi di komputer dapat dikategorikan menjadi tiga tipe, yaitu: 
1. Operasi aritmatika 
Contoh penambahan, pengurangan, perkalian, pembagian dan sisa bagi (Div). 
2. Operasi logika 
Contoh operasi OR, AND, X-OR, inversi dan sebagainya. 3. Operasi pengendalian 
Pemroses terdiri dari : 
  • Bagian ALU (Aritmatic Logic Unit) untuk komputasi, berupa operasi-operasi aritmatika dan logika.
  • Bagian CU (Control Unit) untuk pengendalian operasi yang dilaksanakan sistem komputer. 
  • Register-register, Berfungsi membantu pelaksanaan operasi yang dilakukan pemroses. Register-register berfungsi sebagai memori sangat cepat yang biasanya sebagai tempat operan-operan dari operasi yang akan dilakukan.

Register-register

I. Register  Terlihat Pemakai

Register-register terlihat oleh pemakai (pemrogram) : Pemrograman dapat memeriksa isi dari register-register tipe ini. 
Beberapa instruksi disediakan untuk mengisi (memodifikasi) register tipe ini. 
  1. Register data ( untuk menampung nilai ). 
  2. Register alamat (untuk pengalamatan).  

II. Register untuk Kendali dan Status

Register ini digunakan untuk mengendalikan operasi pemroses. Kebanyakan tidak terlihat oleh pemakai. Sebagiannya dapat diakses dengan instruksi mesin yang dieksekusi dalam mode kontrol atau kernel system operasi. 

Register untuk kendali dan status antara lain: 

  1. Register untuk alamat dan buffer. 
  2. Register untuk eksekusi instruksi 
  3. Register untuk informasi status

Memory Utama

Merupakan elemen yang penting dari suatu komputer yang digunakan sebagai penyangga data dan instruksi program untuk digunakan oleh prosesor. 
Tugas utama adalah menampung pekerjaan pada saat sebelum dan sesudah pekerjaan itu dilaksanakan oleh processor dan menampung berbagai hal yang diperlukan processor. 
  1. Contoh Memory Utama untuk memory tetap adalah ROM. 
  2. Sedangkan Memory Utama untuk memory bebas adalah RAM. 

O/I DEVICE

Merupakan sistem pemrosesan informasi dalam komputer. 
Input merupakan data yang diterima sistem, sedangkan output merupakan data yang dikirimkan sistem. 
Perangkat masukan/keluaran terdiri dua bagian, yaitu : 
  1. Komponen mekanik, yaitu perangkat itu sendiri
  2. Komponen elektronik, yaitu pengendali perangkat berupa chip controller. 

Interkoneksi Antar Komponen

Interkoneksi antar komponen disebut galur/jalur (bus) yang terdapat pada mainboard, bus terdiri dari tiga macam : 
  • Bus alamat (address bus), satu arah. 16,20,24 jalur.
  • Bus data (data bus), dua arah. 8,16,32 jalur
  • Bus kendali (control bus), dua arah. 4-10 jalur Signal bus kendali antara lain: memori read, memori write, I/O read, I/O write.

Perangkat Lunak

Program adalah sekumpulan instruksi yang disusun sedemikian rupa untuk dapat menyelesaikan masalah-masalah tertentu sesuai dengan kebutuhan.


Sistem Operasi

Merupakan Perangkat lunak yang mengoperasikan komputer serta menyediakan antarmuka dengan perangkat lunak lain atau dengan pengguna.
Berikut jenis-jenis sistem operasi 
  1. Sistem Operasi Stand Alone 
  2. Sistem Operasi Live CD 
  3. Sistem Operasi Embedded 
  4. Sistem Operasi Jaringan 

Program Utilitas

Merupakan program khusus yang berfungsi sebagai perangkat pemeliharaan komputer, seperti anti virus, partisi hardisk, manajemen hardisk, dll. 
Contoh produk program utilitas : Norton Utilities, Partition Magic, McAfee, Windows Defender. 

Program Aplikasi

Merupakan program yang dikembangkan untuk memenuhi kebutuhan yang spesifik. 
Contoh : Aplikasi akuntansi, Aplikasi Perbankan, Aplikasi Manufaktur, dll 

Program Paket

Merupakan program yang dikembangkan untuk kebutuhan umum, seperti : 
  1. Pengolah kata /editor naskah : Wordstar, Ms. Word, Open Office.writer, Libra office, Word Perfect, AmiPro, dll 
  2. Pengolah angka / lembar kerja : Lotus123, Ms. Excell, QuattroPro, dll 
  3. Presentasi : MS PowerPoint, dll 
  4. Desain grafis : CorelDraw, PhotoShop, dll 

Bahasa Pemrograman

Merupakan perangkat lunak untuk pembuatan atau pengembangan perangkat lunak lain. 
Bahasa pemprograman dapat diklasifikasikan menjadi tingkat rendah, tingkat sedang, dan tingkat tinggi. 
Pergeseran dari tingkat rendah ke tinggi menunjukkan kedekatan dengan ‘bahasa manusia’.





Dibuat oleh : Delvira Nayla Hardiana
NIM             : 2023240055

Manajemen File dan Direktory

  Manajemen File dan Direktory Manajemen file dan direktori adalah metode dan struktur data yang digunakan sistem operasi untuk mengatur dan...