Sistem Operasi - Panduan Cepat

Sistem Operasi (OS) adalah antarmuka antara pengguna komputer dan perangkat keras komputer. Sistem operasi adalah perangkat lunak yang melakukan semua tugas dasar seperti manajemen file, manajemen memori, manajemen proses, menangani input dan output, dan mengendalikan perangkat periferal seperti drive disk dan printer.

Beberapa Sistem Operasi populer termasuk Sistem Operasi Linux, Sistem Operasi Windows, VMS, OS / 400, AIX, z / OS, dll.

Definisi

Sistem operasi adalah program yang bertindak sebagai antarmuka antara pengguna dan perangkat keras komputer dan mengontrol pelaksanaan semua jenis program.

Berikut adalah beberapa fungsi penting dari sebuah Sistem Operasi.

  • Manajemen memori
  • Manajemen Prosesor
  • Manajemen perangkat
  • Manajemen file
  • Security
  • Kontrol atas kinerja sistem
  • Akuntansi pekerjaan
  • Kesalahan mendeteksi bantuan
  • Koordinasi antara perangkat lunak dan pengguna lain

Manajemen memori

Manajemen memori mengacu pada manajemen Memori Utama atau Memori Utama. Memori utama adalah kumpulan besar kata atau byte di mana setiap kata atau byte memiliki alamatnya sendiri.

Memori utama menyediakan penyimpanan cepat yang dapat diakses langsung oleh CPU. Untuk program yang akan dieksekusi, itu harus di memori utama. Sistem Operasi melakukan aktivitas berikut untuk manajemen memori -

  • Menyimpan jejak memori primer, yaitu bagian mana yang digunakan oleh siapa, bagian mana yang tidak digunakan.

  • Dalam multiprogramming, OS memutuskan proses mana yang akan mendapatkan memori kapan dan berapa banyak.

  • Mengalokasikan memori saat proses memintanya untuk melakukannya.

  • De-alokasi memori saat proses tidak lagi membutuhkannya atau telah dihentikan.

Manajemen Prosesor

Dalam lingkungan multiprogramming, OS memutuskan proses mana yang mendapatkan prosesor kapan dan untuk berapa lama. Fungsi ini disebutprocess scheduling. Sistem Operasi melakukan aktivitas berikut untuk manajemen prosesor -

  • Melacak prosesor dan status proses. Program yang bertanggung jawab untuk tugas ini dikenal sebagaitraffic controller.

  • Mengalokasikan prosesor (CPU) ke suatu proses.

  • De-mengalokasikan prosesor saat proses tidak lagi diperlukan.

Manajemen perangkat

Sistem Operasi mengelola komunikasi perangkat melalui drivernya masing-masing. Itu melakukan aktivitas berikut untuk manajemen perangkat -

  • Melacak semua perangkat. Program yang bertanggung jawab untuk tugas ini dikenal sebagaiI/O controller.

  • Memutuskan proses mana yang mendapatkan perangkat kapan dan untuk berapa lama.

  • Mengalokasikan perangkat dengan cara yang efisien.

  • Batalkan alokasi perangkat.

Manajemen file

Sistem file biasanya diatur ke dalam direktori untuk navigasi dan penggunaan yang mudah. Direktori ini mungkin berisi file dan petunjuk lainnya.

Sistem Operasi melakukan aktivitas berikut untuk manajemen file -

  • Melacak informasi, lokasi, penggunaan, status, dll. Fasilitas kolektif sering disebut sebagai file system.

  • Memutuskan siapa yang mendapatkan sumber daya.

  • Mengalokasikan sumber daya.

  • De-alokasikan sumber daya.

Aktivitas Penting Lainnya

Berikut adalah beberapa aktivitas penting yang dilakukan Sistem Operasi -

  • Security - Melalui kata sandi dan teknik serupa lainnya, ini mencegah akses tidak sah ke program dan data.

  • Control over system performance - Merekam penundaan antara permintaan layanan dan respons dari sistem.

  • Job accounting - Melacak waktu dan sumber daya yang digunakan oleh berbagai pekerjaan dan pengguna.

  • Error detecting aids - Produksi dump, jejak, pesan kesalahan, dan alat bantu debugging dan pendeteksi kesalahan lainnya.

  • Coordination between other softwares and users - Koordinasi dan penugasan penyusun, juru bahasa, perakit, dan perangkat lunak lain ke berbagai pengguna sistem komputer.

Sistem operasi sudah ada sejak generasi komputer pertama dan terus berkembang seiring waktu. Pada bab ini, kita akan membahas beberapa tipe penting dari sistem operasi yang paling umum digunakan.

Sistem operasi batch

Pengguna sistem operasi batch tidak berinteraksi dengan komputer secara langsung. Setiap pengguna mempersiapkan pekerjaannya pada perangkat off-line seperti kartu berlubang dan mengirimkannya ke operator komputer. Untuk mempercepat pemrosesan, pekerjaan dengan kebutuhan serupa dikelompokkan bersama dan dijalankan sebagai grup. Pemrogram meninggalkan program mereka pada operator dan operator kemudian mengurutkan program dengan persyaratan serupa ke dalam batch.

Masalah dengan Sistem Batch adalah sebagai berikut -

  • Kurangnya interaksi antara pengguna dan pekerjaan.
  • CPU sering menganggur, karena kecepatan perangkat I / O mekanis lebih lambat daripada CPU.
  • Sulit memberikan prioritas yang diinginkan.

Sistem operasi berbagi waktu

Berbagi waktu adalah teknik yang memungkinkan banyak orang, yang berada di berbagai terminal, untuk menggunakan sistem komputer tertentu pada saat yang bersamaan. Berbagi waktu atau multitasking adalah perpanjangan logis dari multiprogramming. Waktu prosesor yang dibagi di antara banyak pengguna secara bersamaan disebut sebagai berbagi waktu.

Perbedaan utama antara Sistem Batch Multiprogram dan Sistem Pembagian Waktu adalah bahwa dalam kasus sistem batch Multiprogram, tujuannya adalah untuk memaksimalkan penggunaan prosesor, sedangkan dalam Sistem Berbagi Waktu, tujuannya adalah untuk meminimalkan waktu respons.

Beberapa pekerjaan dijalankan oleh CPU dengan beralih di antara mereka, tetapi sakelar tersebut sering terjadi. Dengan demikian, pengguna dapat menerima tanggapan langsung. Misalnya, dalam pemrosesan transaksi, prosesor mengeksekusi setiap program pengguna dalam ledakan singkat atau komputasi kuantum. Artinya, jikanpengguna hadir, maka setiap pengguna bisa mendapatkan kuantum waktu. Saat pengguna mengirimkan perintah, waktu respons paling lama dalam beberapa detik.

Sistem operasi menggunakan penjadwalan CPU dan multiprogramming untuk menyediakan sebagian kecil waktu bagi setiap pengguna. Sistem komputer yang dirancang terutama sebagai sistem batch telah dimodifikasi menjadi sistem pembagian waktu.

Keuntungan dari sistem operasi Timesharing adalah sebagai berikut -

  • Memberikan keuntungan respon cepat.
  • Menghindari duplikasi perangkat lunak.
  • Mengurangi waktu idle CPU.

Kekurangan sistem operasi Time-sharing adalah sebagai berikut -

  • Masalah keandalan.
  • Pertanyaan tentang keamanan dan integritas program dan data pengguna.
  • Masalah komunikasi data.

Sistem Operasi Terdistribusi

Sistem terdistribusi menggunakan beberapa prosesor pusat untuk melayani banyak aplikasi waktu nyata dan banyak pengguna. Pekerjaan pemrosesan data didistribusikan di antara prosesor yang sesuai.

Prosesor berkomunikasi satu sama lain melalui berbagai jalur komunikasi (seperti bus berkecepatan tinggi atau jalur telepon). Ini disebut sebagailoosely coupled systemsatau sistem terdistribusi. Prosesor dalam sistem terdistribusi dapat bervariasi dalam ukuran dan fungsi. Prosesor ini disebut sebagai situs, node, komputer, dan sebagainya.

Keuntungan dari sistem terdistribusi adalah sebagai berikut -

  • Dengan fasilitas resource sharing, pengguna di satu situs dapat menggunakan sumber daya yang tersedia di situs lain.
  • Mempercepat pertukaran data satu sama lain melalui surat elektronik.
  • Jika satu situs gagal dalam sistem terdistribusi, situs lainnya berpotensi terus beroperasi.
  • Layanan yang lebih baik kepada pelanggan.
  • Pengurangan beban pada komputer host.
  • Pengurangan keterlambatan dalam pemrosesan data.

Sistem Operasi Jaringan

Sistem Operasi Jaringan berjalan pada server dan memberikan kemampuan kepada server untuk mengelola data, pengguna, grup, keamanan, aplikasi, dan fungsi jaringan lainnya. Tujuan utama dari sistem operasi jaringan adalah untuk memungkinkan akses file dan printer bersama di antara beberapa komputer dalam jaringan, biasanya jaringan area lokal (LAN), jaringan pribadi atau ke jaringan lain.

Contoh sistem operasi jaringan termasuk Microsoft Windows Server 2003, Microsoft Windows Server 2008, UNIX, Linux, Mac OS X, Novell NetWare, dan BSD.

Keuntungan dari sistem operasi jaringan adalah sebagai berikut -

  • Server terpusat sangat stabil.
  • Keamanan dikelola server.
  • Peningkatan ke teknologi dan perangkat keras baru dapat dengan mudah diintegrasikan ke dalam sistem.
  • Akses jarak jauh ke server dimungkinkan dari lokasi dan jenis sistem yang berbeda.

Kerugian dari sistem operasi jaringan adalah sebagai berikut -

  • Biaya tinggi untuk membeli dan menjalankan server.
  • Ketergantungan pada lokasi pusat untuk sebagian besar operasi.
  • Pemeliharaan dan pembaruan rutin diperlukan.

Sistem Operasi Waktu Nyata

Sistem waktu nyata didefinisikan sebagai sistem pemrosesan data di mana interval waktu yang diperlukan untuk memproses dan merespons masukan sangat kecil sehingga dapat mengontrol lingkungan. Waktu yang dibutuhkan oleh sistem untuk menanggapi masukan dan tampilan informasi terbaru yang diperlukan disebut sebagairesponse time. Jadi dalam metode ini, waktu respons sangat sedikit dibandingkan dengan pemrosesan online.

Sistem waktu nyata digunakan ketika ada persyaratan waktu yang kaku pada pengoperasian prosesor atau aliran data dan sistem waktu nyata dapat digunakan sebagai perangkat kontrol dalam aplikasi khusus. Sistem operasi waktu nyata harus memiliki batasan waktu yang jelas dan tetap, jika tidak sistem akan gagal. Misalnya, eksperimen Ilmiah, sistem pencitraan medis, sistem kontrol industri, sistem senjata, robot, sistem kontrol lalu lintas udara, dll.

Ada dua jenis sistem operasi real-time.

Sistem waktu nyata yang sulit

Sistem hard real-time menjamin bahwa tugas-tugas penting selesai tepat waktu. Dalam sistem hard real-time, penyimpanan sekunder terbatas atau hilang dan data disimpan dalam ROM. Dalam sistem ini, memori virtual hampir tidak pernah ditemukan.

Sistem waktu nyata yang lembut

Sistem soft-time tidak terlalu membatasi. Tugas penting secara real-time mendapat prioritas di atas tugas lain dan mempertahankan prioritas hingga selesai. Sistem soft real-time memiliki utilitas terbatas daripada sistem hard real-time. Misalnya, multimedia, realitas virtual, Proyek Ilmiah Lanjutan seperti eksplorasi bawah laut dan penjelajah planet, dll.

Sistem Operasi menyediakan layanan bagi pengguna dan program.

  • Ini menyediakan program lingkungan untuk dieksekusi.
  • Ini memberikan pengguna layanan untuk menjalankan program dengan cara yang nyaman.

Berikut adalah beberapa layanan umum yang disediakan oleh sistem operasi -

  • Eksekusi program
  • Operasi I / O
  • Manipulasi Sistem File
  • Communication
  • Deteksi Kesalahan
  • Alokasi sumber daya
  • Protection

Eksekusi program

Sistem operasi menangani berbagai jenis aktivitas dari program pengguna hingga program sistem seperti spooler printer, server nama, server file, dll. Masing-masing aktivitas ini dikemas sebagai sebuah proses.

Suatu proses mencakup konteks eksekusi lengkap (kode untuk dieksekusi, data untuk dimanipulasi, register, sumber daya OS yang digunakan). Berikut ini adalah aktivitas utama dari sistem operasi sehubungan dengan manajemen program -

  • Memuat program ke dalam memori.
  • Jalankan program.
  • Menangani eksekusi program.
  • Menyediakan mekanisme untuk sinkronisasi proses.
  • Menyediakan mekanisme untuk komunikasi proses.
  • Menyediakan mekanisme penanganan kebuntuan.

Operasi I / O

Subsistem I / O terdiri dari perangkat I / O dan perangkat lunak driver yang sesuai. Driver menyembunyikan kekhasan perangkat keras tertentu dari pengguna.

Sistem Operasi mengelola komunikasi antara pengguna dan driver perangkat.

  • Operasi I / O berarti operasi baca atau tulis dengan file apa pun atau perangkat I / O tertentu.
  • Sistem operasi menyediakan akses ke perangkat I / O yang diperlukan saat diperlukan.

Manipulasi sistem file

File mewakili kumpulan informasi terkait. Komputer dapat menyimpan file pada disk (penyimpanan sekunder), untuk tujuan penyimpanan jangka panjang. Contoh media penyimpanan termasuk pita magnetik, disk magnetis, dan drive disk optik seperti CD, DVD. Masing-masing media ini memiliki sifatnya sendiri seperti kecepatan, kapasitas, kecepatan transfer data, dan metode akses data.

Sistem file biasanya diatur ke dalam direktori untuk navigasi dan penggunaan yang mudah. Direktori ini mungkin berisi file dan petunjuk lainnya. Berikut adalah aktivitas utama dari sistem operasi sehubungan dengan manajemen file -

  • Program perlu membaca file atau menulis file.
  • Sistem operasi memberikan izin kepada program untuk operasi pada file.
  • Izin bervariasi dari baca-saja, baca-tulis, ditolak, dan sebagainya.
  • Sistem Operasi menyediakan antarmuka kepada pengguna untuk membuat / menghapus file.
  • Sistem Operasi menyediakan antarmuka kepada pengguna untuk membuat / menghapus direktori.
  • Sistem Operasi menyediakan antarmuka untuk membuat cadangan sistem file.

Komunikasi

Dalam kasus sistem terdistribusi yang merupakan kumpulan prosesor yang tidak berbagi memori, perangkat periferal, atau jam, sistem operasi mengelola komunikasi di antara semua proses. Berbagai proses berkomunikasi satu sama lain melalui jalur komunikasi dalam jaringan.

OS menangani strategi perutean dan koneksi, serta masalah perselisihan dan keamanan. Berikut adalah aktivitas utama dari sistem operasi sehubungan dengan komunikasi -

  • Dua proses seringkali membutuhkan data untuk ditransfer di antara mereka
  • Kedua proses tersebut dapat berada di satu komputer atau di komputer yang berbeda, tetapi terhubung melalui jaringan komputer.
  • Komunikasi dapat diimplementasikan dengan dua metode, baik dengan Memori Bersama atau lewat Pesan.

Penanganan kesalahan

Kesalahan bisa terjadi kapan saja dan dimana saja. Kesalahan dapat terjadi di CPU, di perangkat I / O atau di perangkat keras memori. Berikut adalah aktivitas utama sistem operasi sehubungan dengan penanganan kesalahan -

  • OS terus-menerus memeriksa kemungkinan kesalahan.
  • OS mengambil tindakan yang tepat untuk memastikan komputasi yang benar dan konsisten.

Pengelolaan sumber daya

Dalam kasus lingkungan multi-pengguna atau multi-tasking, sumber daya seperti memori utama, siklus CPU dan penyimpanan file akan dialokasikan untuk setiap pengguna atau pekerjaan. Berikut adalah aktivitas utama dari sistem operasi sehubungan dengan manajemen sumber daya -

  • OS mengelola semua jenis sumber daya menggunakan penjadwal.
  • Algoritme penjadwalan CPU digunakan untuk pemanfaatan CPU yang lebih baik.

Perlindungan

Mempertimbangkan sistem komputer yang memiliki banyak pengguna dan eksekusi bersamaan dari beberapa proses, berbagai proses harus dilindungi dari aktivitas satu sama lain.

Perlindungan mengacu pada mekanisme atau cara untuk mengontrol akses program, proses, atau pengguna ke sumber daya yang ditentukan oleh sistem komputer. Berikut adalah aktivitas utama sistem operasi sehubungan dengan perlindungan -

  • OS memastikan bahwa semua akses ke sumber daya sistem dikontrol.
  • OS memastikan bahwa perangkat I / O eksternal dilindungi dari upaya akses yang tidak valid.
  • OS menyediakan fitur otentikasi untuk setiap pengguna melalui kata sandi.

Pemrosesan batch

Pemrosesan batch adalah teknik di mana Sistem Operasi mengumpulkan program dan data bersama-sama dalam satu batch sebelum pemrosesan dimulai. Sistem operasi melakukan aktivitas berikut terkait dengan pemrosesan batch -

  • OS mendefinisikan pekerjaan yang memiliki urutan perintah, program, dan data yang telah ditentukan sebagai satu unit.

  • OS menyimpan sejumlah pekerjaan di memori dan menjalankannya tanpa informasi manual.

  • Pekerjaan diproses dalam urutan pengajuan, yaitu fashion yang datang lebih dulu.

  • Saat sebuah pekerjaan selesai dieksekusi, memorinya dilepaskan dan keluaran untuk pekerjaan tersebut disalin ke dalam spool keluaran untuk dicetak atau diproses nanti.

Keuntungan

  • Pemrosesan batch mengambil banyak pekerjaan operator ke komputer.

  • Peningkatan kinerja saat pekerjaan baru dimulai segera setelah pekerjaan sebelumnya selesai, tanpa intervensi manual.

Kekurangan

  • Sulit untuk men-debug program.
  • Sebuah pekerjaan bisa memasuki putaran tak terbatas.
  • Karena kurangnya skema perlindungan, satu pekerjaan batch dapat memengaruhi pekerjaan yang tertunda.

Multitasking

Multitasking adalah ketika banyak pekerjaan dijalankan oleh CPU secara bersamaan dengan beralih di antaranya. Peralihan terjadi begitu sering sehingga pengguna dapat berinteraksi dengan setiap program saat sedang berjalan. OS melakukan aktivitas berikut terkait multitasking -

  • Pengguna memberikan instruksi ke sistem operasi atau ke program secara langsung, dan menerima tanggapan segera.

  • OS menangani multitasking sedemikian rupa sehingga dapat menangani banyak operasi / menjalankan banyak program sekaligus.

  • Sistem Operasi Multitasking juga dikenal sebagai sistem berbagi waktu.

  • Sistem Operasi ini dikembangkan untuk menyediakan penggunaan sistem komputer secara interaktif dengan biaya yang wajar.

  • Sistem operasi time-share menggunakan konsep penjadwalan CPU dan multiprogramming untuk menyediakan setiap pengguna sebagian kecil dari CPU time-share.

  • Setiap pengguna memiliki setidaknya satu program terpisah di memori.

  • Program yang dimuat ke dalam memori dan sedang dijalankan biasanya disebut sebagai file process.

  • Saat sebuah proses dijalankan, biasanya proses tersebut dijalankan hanya dalam waktu yang sangat singkat sebelum selesai atau perlu melakukan I / O.

  • Karena I / O interaktif biasanya berjalan pada kecepatan yang lebih lambat, mungkin perlu waktu lama untuk menyelesaikannya. Selama waktu ini, CPU dapat digunakan oleh proses lain.

  • Sistem operasi memungkinkan pengguna untuk berbagi komputer secara bersamaan. Karena setiap tindakan atau perintah dalam sistem waktu bersama cenderung pendek, hanya sedikit waktu CPU yang dibutuhkan untuk setiap pengguna.

  • Karena sistem mengalihkan CPU dengan cepat dari satu pengguna / program ke program berikutnya, setiap pengguna diberi kesan bahwa dia memiliki CPU-nya sendiri, sedangkan sebenarnya satu CPU sedang digunakan bersama di antara banyak pengguna.

Multiprogramming

Berbagi prosesor, ketika dua atau lebih program berada di memori pada saat yang sama, disebut sebagai multiprogramming. Multiprogramming mengasumsikan satu prosesor bersama. Multiprogramming meningkatkan pemakaian CPU dengan mengatur pekerjaan sehingga CPU selalu memiliki tugas untuk dijalankan.

Gambar berikut menunjukkan tata letak memori untuk sistem multiprogram.

OS melakukan aktivitas berikut yang berkaitan dengan multiprogramming.

  • Sistem operasi menyimpan beberapa pekerjaan di memori dalam satu waktu.

  • Kumpulan pekerjaan ini adalah subset dari pekerjaan yang disimpan dalam kumpulan pekerjaan.

  • Sistem operasi mengambil dan mulai menjalankan salah satu tugas di memori.

  • Sistem operasi multiprogramming memantau status semua program dan sumber daya sistem yang aktif menggunakan program manajemen memori untuk memastikan bahwa CPU tidak pernah menganggur, kecuali jika tidak ada tugas untuk diproses.

Keuntungan

  • Pemakaian CPU yang tinggi dan efisien.
  • Pengguna merasa bahwa banyak program yang dialokasikan CPU hampir secara bersamaan.

Kekurangan

  • Penjadwalan CPU diperlukan.
  • Untuk mengakomodasi banyak pekerjaan di memori, diperlukan manajemen memori.

Interaktivitas

Interaktivitas mengacu pada kemampuan pengguna untuk berinteraksi dengan sistem komputer. Sistem Operasi melakukan aktivitas berikut yang berkaitan dengan interaktivitas -

  • Memberikan pengguna sebuah antarmuka untuk berinteraksi dengan sistem.
  • Mengelola perangkat masukan untuk mengambil masukan dari pengguna. Misalnya, keyboard.
  • Mengelola perangkat keluaran untuk menunjukkan keluaran kepada pengguna. Misalnya, Monitor.

Waktu respons OS harus singkat, karena pengguna mengirimkan dan menunggu hasilnya.

Sistem Waktu Nyata

Sistem waktu nyata biasanya merupakan sistem khusus yang tertanam. Sistem operasi melakukan aktivitas berikut yang berkaitan dengan aktivitas sistem waktu nyata.

  • Dalam sistem seperti itu, Sistem Operasi biasanya membaca dari dan bereaksi terhadap data sensor.
  • Sistem Operasi harus menjamin respons terhadap peristiwa dalam periode waktu tertentu untuk memastikan kinerja yang benar.

Lingkungan Terdistribusi

Lingkungan terdistribusi mengacu pada beberapa CPU atau prosesor independen dalam sistem komputer. Sistem operasi melakukan aktivitas berikut terkait dengan lingkungan terdistribusi -

  • OS mendistribusikan logika komputasi di antara beberapa prosesor fisik.

  • Prosesor tidak berbagi memori atau jam. Sebaliknya, setiap prosesor memiliki memori lokalnya sendiri.

  • OS mengelola komunikasi antar prosesor. Mereka berkomunikasi satu sama lain melalui berbagai jalur komunikasi.

Spooling

Spooling adalah akronim untuk operasi periferal secara bersamaan secara online. Spooling mengacu pada penempatan data berbagai pekerjaan I / O dalam buffer. Buffer ini adalah area khusus dalam memori atau hard disk yang dapat diakses oleh perangkat I / O.

Sistem operasi melakukan aktivitas berikut terkait dengan lingkungan terdistribusi -

  • Menangani spooling data perangkat I / O karena perangkat memiliki kecepatan akses data yang berbeda.

  • Mempertahankan buffer spooling yang menyediakan stasiun tunggu tempat data dapat beristirahat sementara perangkat yang lebih lambat mengejar.

  • Mempertahankan komputasi paralel karena proses spooling karena komputer dapat melakukan I / O secara paralel. Hal ini menjadi mungkin untuk membuat komputer membaca data dari tape, menulis data ke disk dan menulis ke tape printer ketika sedang melakukan tugas komputasi.

Keuntungan

  • Operasi spooling menggunakan disk sebagai buffer yang sangat besar.
  • Spooling mampu melakukan operasi I / O tumpang tindih untuk satu pekerjaan dengan operasi prosesor untuk pekerjaan lain.

Proses

Suatu proses pada dasarnya adalah program dalam eksekusi. Eksekusi suatu proses harus berkembang secara berurutan.

Suatu proses didefinisikan sebagai suatu entitas yang merepresentasikan unit kerja dasar yang akan dilaksanakan di dalam sistem.

Sederhananya, kami menulis program komputer kami dalam file teks dan ketika kami menjalankan program ini, itu menjadi proses yang melakukan semua tugas yang disebutkan dalam program.

Ketika sebuah program dimuat ke dalam memori dan itu menjadi sebuah proses, itu dapat dibagi menjadi empat bagian ─ tumpukan, tumpukan, teks dan data. Gambar berikut menunjukkan tata letak yang disederhanakan dari suatu proses di dalam memori utama -

SN Deskripsi komponen
1

Stack

Proses Stack berisi data sementara seperti parameter metode / fungsi, alamat pengirim dan variabel lokal.

2

Heap

Ini secara dinamis mengalokasikan memori ke proses selama waktu berjalannya.

3

Text

Ini termasuk aktivitas saat ini yang diwakili oleh nilai Program Counter dan isi register prosesor.

4

Data

Bagian ini berisi variabel global dan statis.

Program

Program adalah potongan kode yang mungkin berupa satu baris atau jutaan baris. Program komputer biasanya ditulis oleh pemrogram komputer dalam bahasa pemrograman. Misalnya, berikut adalah program sederhana yang ditulis dalam bahasa pemrograman C -

#include <stdio.h>

int main() {
   printf("Hello, World! \n");
   return 0;
}

Program komputer adalah kumpulan instruksi yang melakukan tugas tertentu ketika dijalankan oleh komputer. Ketika kita membandingkan program dengan proses, kita dapat menyimpulkan bahwa proses adalah contoh dinamis dari program komputer.

Bagian dari program komputer yang melakukan tugas yang didefinisikan dengan baik dikenal sebagai file algorithm. Kumpulan program komputer, perpustakaan dan data terkait disebut sebagai asoftware.

Proses Siklus Hidup

Ketika sebuah proses dijalankan, itu melewati status yang berbeda. Tahapan ini mungkin berbeda dalam sistem operasi yang berbeda, dan nama negara bagian ini juga tidak standar.

Secara umum, suatu proses dapat memiliki salah satu dari lima kondisi berikut dalam satu waktu.

SN Status & Deskripsi
1

Start

Ini adalah keadaan awal saat proses pertama kali dimulai / dibuat.

2

Ready

Proses sedang menunggu untuk ditugaskan ke prosesor. Proses siap menunggu prosesor dialokasikan kepadanya oleh sistem operasi sehingga mereka dapat berjalan. Proses mungkin akan mencapai keadaan ini setelahnyaStart keadaan atau saat menjalankannya tetapi terganggu oleh penjadwal untuk menetapkan CPU ke beberapa proses lain.

3

Running

Setelah proses ditetapkan ke prosesor oleh Penjadwal OS, status proses diatur untuk berjalan dan prosesor menjalankan instruksinya.

4

Waiting

Proses berpindah ke status menunggu jika perlu menunggu sumber daya, seperti menunggu masukan pengguna, atau menunggu file tersedia.

5

Terminated or Exit

Setelah proses selesai dieksekusi, atau diakhiri oleh sistem operasi, itu dipindahkan ke status dihentikan di mana ia menunggu untuk dihapus dari memori utama.

Blok Kontrol Proses (PCB)

Blok Kontrol Proses adalah struktur data yang dikelola oleh Sistem Operasi untuk setiap proses. PCB diidentifikasi oleh ID proses integer (PID). PCB menyimpan semua informasi yang diperlukan untuk melacak proses seperti yang tercantum di bawah ini dalam tabel -

SN Informasi & Deskripsi
1

Process State

Status proses saat ini yaitu, apakah sudah siap, berjalan, menunggu, atau apa pun.

2

Process privileges

Ini diperlukan untuk mengizinkan / melarang akses ke sumber daya sistem.

3

Process ID

Identifikasi unik untuk setiap proses dalam sistem operasi.

4

Pointer

Sebuah penunjuk ke proses induk.

5

Program Counter

Program Counter adalah penunjuk ke alamat instruksi selanjutnya yang akan dijalankan untuk proses ini.

6

CPU registers

Berbagai register CPU di mana proses perlu disimpan untuk eksekusi untuk status berjalan.

7

CPU Scheduling Information

Prioritas proses dan informasi penjadwalan lainnya yang diperlukan untuk menjadwalkan proses.

8

Memory management information

Ini termasuk informasi tabel halaman, batas memori, tabel Segmen tergantung pada memori yang digunakan oleh sistem operasi.

9

Accounting information

Ini termasuk jumlah CPU yang digunakan untuk eksekusi proses, batas waktu, ID eksekusi, dll.

10

IO status information

Ini termasuk daftar perangkat I / O yang dialokasikan untuk proses tersebut.

Arsitektur PCB sepenuhnya bergantung pada Sistem Operasi dan mungkin berisi informasi yang berbeda dalam sistem operasi yang berbeda. Berikut adalah diagram PCB yang disederhanakan -

PCB dipertahankan untuk suatu proses selama masa pakainya, dan dihapus setelah proses berakhir.

Definisi

Penjadwalan proses adalah aktivitas manajer proses yang menangani penghapusan proses yang sedang berjalan dari CPU dan pemilihan proses lain berdasarkan strategi tertentu.

Penjadwalan proses adalah bagian penting dari sistem operasi Multiprogramming. Sistem operasi semacam itu memungkinkan lebih dari satu proses untuk dimuat ke dalam memori yang dapat dieksekusi pada satu waktu dan proses yang dimuat berbagi CPU menggunakan multiplexing waktu.

Proses Penjadwalan Antrian

OS memelihara semua PCB dalam Antrian Penjadwalan Proses. OS memelihara antrian terpisah untuk setiap status proses dan PCB dari semua proses dalam status eksekusi yang sama ditempatkan dalam antrian yang sama. Ketika status proses diubah, PCB-nya dibatalkan tautannya dari antrean saat ini dan dipindahkan ke antrean status baru.

Sistem Operasi mempertahankan antrian penjadwalan proses penting berikut -

  • Job queue - Antrian ini menyimpan semua proses dalam sistem.

  • Ready queue- Antrian ini menyimpan satu set semua proses yang berada di memori utama, siap dan menunggu untuk dieksekusi. Proses baru selalu dimasukkan ke dalam antrian ini.

  • Device queues - Proses yang diblokir karena tidak tersedianya perangkat I / O merupakan antrian ini.

OS dapat menggunakan kebijakan yang berbeda untuk mengelola setiap antrian (FIFO, Round Robin, Priority, dll.). Penjadwal OS menentukan cara memindahkan proses antara antrian siap dan menjalankan yang hanya dapat memiliki satu entri per inti prosesor pada sistem; pada diagram di atas, telah digabungkan dengan CPU.

Model Proses Dua-Negara

Model proses dua status mengacu pada status berjalan dan tidak berjalan yang dijelaskan di bawah ini -

SN Status & Deskripsi
1

Running

Saat proses baru dibuat, proses tersebut masuk ke dalam sistem seperti dalam status berjalan.

2

Not Running

Proses yang tidak berjalan disimpan dalam antrian, menunggu giliran untuk dieksekusi. Setiap entri dalam antrian adalah penunjuk ke proses tertentu. Antrian diimplementasikan dengan menggunakan linked list. Penggunaan dispatcher adalah sebagai berikut. Ketika suatu proses terputus, proses itu ditransfer dalam antrian tunggu. Jika proses telah selesai atau dibatalkan, proses tersebut akan dibuang. Dalam kedua kasus tersebut, petugas operator kemudian memilih proses dari antrian untuk dieksekusi.

Penjadwal

Penjadwal adalah perangkat lunak sistem khusus yang menangani penjadwalan proses dengan berbagai cara. Tugas utama mereka adalah memilih pekerjaan yang akan dikirim ke sistem dan memutuskan proses mana yang akan dijalankan. Penjadwal terdiri dari tiga jenis -

  • Penjadwal Jangka Panjang
  • Penjadwal Jangka Pendek
  • Penjadwal Jangka Menengah

Penjadwal Jangka Panjang

Ini juga disebut a job scheduler. Penjadwal jangka panjang menentukan program mana yang dimasukkan ke sistem untuk diproses. Ini memilih proses dari antrian dan memuatnya ke dalam memori untuk dieksekusi. Proses dimuat ke dalam memori untuk penjadwalan CPU.

Tujuan utama dari penjadwal pekerjaan adalah untuk menyediakan campuran pekerjaan yang seimbang, seperti terikat I / O dan terikat prosesor. Ini juga mengontrol tingkat multiprogramming. Jika derajat multiprogramming stabil, maka laju rata-rata pembuatan proses harus sama dengan laju keberangkatan rata-rata proses yang meninggalkan sistem.

Pada beberapa sistem, penjadwal jangka panjang mungkin tidak tersedia atau minimal. Sistem operasi berbagi waktu tidak memiliki penjadwal jangka panjang. Ketika suatu proses mengubah status dari baru menjadi siap, maka ada penggunaan penjadwal jangka panjang.

Penjadwal Jangka Pendek

Itu juga disebut sebagai CPU scheduler. Tujuan utamanya adalah untuk meningkatkan kinerja sistem sesuai dengan kriteria yang dipilih. Ini adalah perubahan dari status siap ke status berjalan dari proses. Penjadwal CPU memilih proses di antara proses yang siap untuk dieksekusi dan mengalokasikan CPU ke salah satunya.

Penjadwal jangka pendek, juga dikenal sebagai dispatcher, membuat keputusan tentang proses mana yang akan dijalankan selanjutnya. Penjadwal jangka pendek lebih cepat daripada penjadwal jangka panjang.

Penjadwal Jangka Menengah

Penjadwalan jangka menengah adalah bagian dari swapping. Ini menghapus proses dari memori. Ini mengurangi tingkat multiprogramming. Penjadwal jangka menengah bertugas menangani proses keluar yang ditukar.

Proses yang sedang berjalan dapat ditangguhkan jika membuat permintaan I / O. Proses yang ditangguhkan tidak dapat membuat kemajuan apa pun menuju penyelesaian. Dalam kondisi ini, untuk menghapus proses dari memori dan memberi ruang untuk proses lainnya, proses yang ditangguhkan dipindahkan ke penyimpanan sekunder. Proses ini disebutswapping, dan proses tersebut dikatakan akan ditukar atau diluncurkan. Pertukaran mungkin diperlukan untuk meningkatkan campuran proses.

Perbandingan antara Penjadwal

SN Penjadwal Jangka Panjang Penjadwal Jangka Pendek Penjadwal Jangka Menengah
1 Ini adalah penjadwal pekerjaan Ini adalah penjadwal CPU Ini adalah penjadwal pertukaran proses.
2 Kecepatan lebih rendah dari penjadwal jangka pendek Kecepatan tercepat di antara dua lainnya Kecepatan ada di antara penjadwal jangka pendek dan panjang.
3 Ini mengontrol tingkat multiprogramming Ini memberikan kontrol yang lebih rendah atas tingkat multiprogramming Ini mengurangi tingkat multiprogramming.
4 Ini hampir tidak ada atau minimal dalam sistem pembagian waktu Ini juga minimal dalam sistem pembagian waktu Ini adalah bagian dari sistem berbagi waktu.
5 Ini memilih proses dari pool dan memuatnya ke dalam memori untuk dieksekusi Ini memilih proses yang siap untuk dieksekusi Itu dapat memperkenalkan kembali proses ke dalam memori dan eksekusi dapat dilanjutkan.

Pengalih Konteks

Sakelar konteks adalah mekanisme untuk menyimpan dan memulihkan status atau konteks CPU di blok Kontrol Proses sehingga eksekusi proses dapat dilanjutkan dari titik yang sama di lain waktu. Dengan menggunakan teknik ini, pengalih konteks memungkinkan banyak proses untuk berbagi satu CPU. Peralihan konteks adalah bagian penting dari fitur sistem operasi multitasking.

Ketika penjadwal mengalihkan CPU dari menjalankan satu proses ke menjalankan proses lainnya, status dari proses yang sedang berjalan disimpan ke dalam blok kontrol proses. Setelah ini, status untuk menjalankan proses selanjutnya dimuat dari PCBnya sendiri dan digunakan untuk mengatur PC, register, dll. Pada titik itu, proses kedua dapat mulai dijalankan.

Sakelar konteks intensif secara komputasi karena register dan status memori harus disimpan dan dipulihkan. Untuk menghindari jumlah waktu pengalihan konteks, beberapa sistem perangkat keras menggunakan dua atau lebih set register prosesor. Saat proses dialihkan, informasi berikut disimpan untuk digunakan nanti.

  • Penghitung Program
  • Informasi penjadwalan
  • Nilai register dasar dan batas
  • Register saat ini digunakan
  • Status Berubah
  • Informasi I / O State
  • Informasi akuntan

Penjadwal Proses menjadwalkan proses yang berbeda untuk ditugaskan ke CPU berdasarkan algoritma penjadwalan tertentu. Ada enam algoritma penjadwalan proses populer yang akan kita bahas dalam bab ini -

  • Penjadwalan First-Come, First-Served (FCFS)
  • Penjadwalan Shortest-Job-Next (SJN)
  • Penjadwalan Prioritas
  • Sisa Waktu Tersingkat
  • Penjadwalan Round Robin (RR)
  • Penjadwalan Antrian Beberapa Tingkat

Algoritme ini juga non-preemptive or preemptive. Algoritme non-preemptive dirancang sedemikian rupa sehingga setelah suatu proses memasuki status berjalan, itu tidak dapat didahului hingga menyelesaikan waktu yang dialokasikan, sedangkan penjadwalan preemptive didasarkan pada prioritas di mana penjadwal dapat mendahului proses yang berjalan dengan prioritas rendah kapan saja ketika prioritas tinggi proses memasuki keadaan siap.

First Come First Serve (FCFS)

  • Pekerjaan dijalankan berdasarkan siapa cepat dia dapat.
  • Ini adalah algoritma penjadwalan preemptive dan pre-emptive.
  • Mudah dipahami dan diterapkan.
  • Implementasinya berdasarkan antrian FIFO.
  • Performa buruk karena waktu tunggu rata-rata tinggi.

Wait time dari setiap proses adalah sebagai berikut -

Proses Waktu Tunggu: Waktu Layanan - Waktu Kedatangan
P0 0 - 0 = 0
P1 5 - 1 = 4
P2 8 - 2 = 6
P3 16 - 3 = 13

Waktu Tunggu Rata-rata: (0 + 4 + 6 + 13) / 4 = 5.75

Pekerjaan Tersingkat Berikutnya (SJN)

  • Ini juga dikenal sebagai shortest job first, atau SJF

  • Ini adalah algoritma penjadwalan preemptive dan preemptive.

  • Pendekatan terbaik untuk meminimalkan waktu tunggu.

  • Mudah diimplementasikan dalam sistem Batch di mana waktu CPU yang diperlukan telah diketahui sebelumnya.

  • Tidak mungkin diterapkan dalam sistem interaktif di mana waktu CPU yang diperlukan tidak diketahui.

  • Pengolah harus mengetahui sebelumnya berapa lama waktu yang dibutuhkan untuk proses tersebut.

Diberikan: Tabel proses, dan waktu Kedatangan mereka, Waktu eksekusi

Proses Jam kedatangan Waktu eksekusi Waktu Layanan
P0 0 5 0
P1 1 3 5
P2 2 8 14
P3 3 6 8

Waiting time dari setiap proses adalah sebagai berikut -

Proses Waktu menunggu
P0 0 - 0 = 0
P1 5 - 1 = 4
P2 14 - 2 = 12
P3 8 - 3 = 5

Waktu Tunggu Rata-rata: (0 + 4 + 12 + 5) / 4 = 21/4 = 5.25

Penjadwalan Berbasis Prioritas

  • Penjadwalan prioritas adalah algoritma non-preemptive dan salah satu algoritma penjadwalan yang paling umum dalam sistem batch.

  • Setiap proses diberi prioritas. Proses dengan prioritas tertinggi harus dijalankan terlebih dahulu dan seterusnya.

  • Proses dengan prioritas yang sama dijalankan berdasarkan siapa cepat dia dapat.

  • Prioritas dapat ditentukan berdasarkan persyaratan memori, persyaratan waktu, atau persyaratan sumber daya lainnya.

Diberikan: Tabel proses, dan waktu Kedatangan, waktu Eksekusi, dan prioritas. Di sini kami menganggap 1 adalah prioritas terendah.

Proses Jam kedatangan Waktu eksekusi Prioritas Waktu Layanan
P0 0 5 1 0
P1 1 3 2 11
P2 2 8 1 14
P3 3 6 3 5

Waiting time dari setiap proses adalah sebagai berikut -

Proses Waktu menunggu
P0 0 - 0 = 0
P1 11 - 1 = 10
P2 14 - 2 = 12
P3 5 - 3 = 2

Waktu Tunggu Rata-rata: (0 + 10 + 12 + 2) / 4 = 24/4 = 6

Sisa Waktu Tersingkat

  • Waktu tersisa tersingkat (SRT) adalah versi preemptive dari algoritma SJN.

  • Prosesor dialokasikan ke pekerjaan yang paling mendekati penyelesaian tetapi dapat didahului oleh pekerjaan siap yang lebih baru dengan waktu penyelesaian yang lebih singkat.

  • Tidak mungkin diterapkan dalam sistem interaktif di mana waktu CPU yang diperlukan tidak diketahui.

  • Ini sering digunakan dalam lingkungan batch di mana pekerjaan pendek perlu memberikan preferensi.

Penjadwalan Round Robin

  • Round Robin adalah algoritma penjadwalan proses preemptive.

  • Setiap proses diberikan waktu tetap untuk dieksekusi, ini disebut a quantum.

  • Setelah proses dieksekusi untuk jangka waktu tertentu, proses tersebut akan didahului dan proses lainnya dijalankan untuk jangka waktu tertentu.

  • Pengalihan konteks digunakan untuk menyimpan status proses yang telah ditentukan sebelumnya.

Wait time dari setiap proses adalah sebagai berikut -

Proses Waktu Tunggu: Waktu Layanan - Waktu Kedatangan
P0 (0-0) + (12 - 3) = 9
P1 (3 - 1) = 2
P2 (6 - 2) + (14 - 9) + (20 - 17) = 12
P3 (9 - 3) + (17 - 12) = 11

Waktu Tunggu Rata-rata: (9 + 2 + 12 + 11) / 4 = 8,5

Penjadwalan Antrian Beberapa Tingkat

Antrian multi-level bukanlah algoritma penjadwalan independen. Mereka menggunakan algoritme lain yang ada untuk mengelompokkan dan menjadwalkan pekerjaan dengan karakteristik umum.

  • Beberapa antrian dipertahankan untuk proses dengan karakteristik umum.
  • Setiap antrian dapat memiliki algoritme penjadwalannya sendiri.
  • Prioritas ditetapkan untuk setiap antrian.

Misalnya, pekerjaan terikat CPU dapat dijadwalkan dalam satu antrian dan semua pekerjaan terikat I / O di antrian lain. Process Scheduler kemudian secara bergantian memilih pekerjaan dari setiap antrian dan menugaskannya ke CPU berdasarkan algoritma yang ditetapkan ke antrian.

Apa itu Thread?

Utas adalah aliran eksekusi melalui kode proses, dengan penghitung programnya sendiri yang melacak instruksi mana yang akan dieksekusi berikutnya, register sistem yang menyimpan variabel kerjanya saat ini, dan tumpukan yang berisi riwayat eksekusi.

Sebuah utas berbagi dengan utas rekannya beberapa informasi seperti segmen kode, segmen data, dan file terbuka. Ketika satu utas mengubah item memori segmen kode, semua utas lainnya melihatnya.

Benang juga disebut a lightweight process. Utas menyediakan cara untuk meningkatkan kinerja aplikasi melalui paralelisme. Threads merupakan pendekatan perangkat lunak untuk meningkatkan kinerja sistem operasi dengan mengurangi overhead thread yang setara dengan proses klasik.

Setiap utas memiliki tepat satu proses dan tidak ada utas yang dapat berada di luar proses. Setiap utas mewakili aliran kontrol yang terpisah. Thread telah berhasil digunakan dalam mengimplementasikan server jaringan dan server web. Mereka juga menyediakan fondasi yang sesuai untuk eksekusi paralel aplikasi pada multiprosesor memori bersama. Gambar berikut menunjukkan cara kerja proses single-threaded dan multithread.

Perbedaan antara Proses dan Thread

SN Proses Benang
1 Prosesnya berat atau intensif sumber daya. Benang itu ringan, mengambil sumber daya lebih sedikit daripada sebuah proses.
2 Proses switching membutuhkan interaksi dengan sistem operasi. Peralihan benang tidak perlu berinteraksi dengan sistem operasi.
3 Dalam beberapa lingkungan pemrosesan, setiap proses menjalankan kode yang sama tetapi memiliki memori dan sumber daya file sendiri. Semua utas dapat berbagi kumpulan file terbuka yang sama, proses anak.
4 Jika satu proses diblokir, maka tidak ada proses lain yang dapat dijalankan hingga proses pertama tidak diblokir. Saat satu utas diblokir dan menunggu, utas kedua dalam tugas yang sama dapat berjalan.
5 Beberapa proses tanpa menggunakan utas menggunakan lebih banyak sumber daya. Beberapa proses berulir menggunakan lebih sedikit sumber daya.
6 Dalam banyak proses, setiap proses beroperasi secara independen dari yang lain. Satu utas dapat membaca, menulis, atau mengubah data utas lainnya.

Keuntungan dari Thread

  • Utas meminimalkan waktu peralihan konteks.
  • Penggunaan utas menyediakan konkurensi dalam suatu proses.
  • Komunikasi yang efisien.
  • Lebih ekonomis untuk membuat dan mengubah konteks utas sakelar.
  • Benang memungkinkan pemanfaatan arsitektur multiprosesor ke skala dan efisiensi yang lebih besar.

Jenis Benang

Utas diimplementasikan dengan dua cara berikut -

  • User Level Threads - Utas yang dikelola pengguna.

  • Kernel Level Threads - Thread yang dikelola Sistem Operasi yang bekerja pada kernel, inti sistem operasi.

Utas Tingkat Pengguna

Dalam kasus ini, kernel manajemen utas tidak mengetahui keberadaan utas. Pustaka utas berisi kode untuk membuat dan menghancurkan utas, untuk meneruskan pesan dan data antar utas, untuk menjadwalkan eksekusi utas dan untuk menyimpan dan memulihkan konteks utas. Aplikasi dimulai dengan satu utas.

Keuntungan

  • Peralihan utas tidak memerlukan hak mode Kernel.
  • Utas tingkat pengguna dapat berjalan di sistem operasi apa pun.
  • Penjadwalan dapat menjadi aplikasi khusus di utas tingkat pengguna.
  • Utas tingkat pengguna cepat dibuat dan dikelola.

Kekurangan

  • Dalam sistem operasi tipikal, sebagian besar panggilan sistem diblokir.
  • Aplikasi multithread tidak dapat memanfaatkan multiprosesing.

Utas Tingkat Kernel

Dalam hal ini, manajemen utas dilakukan oleh Kernel. Tidak ada kode manajemen utas di area aplikasi. Utas kernel didukung langsung oleh sistem operasi. Aplikasi apa pun dapat diprogram untuk menjadi multithread. Semua utas dalam aplikasi didukung dalam satu proses.

Kernel memelihara informasi konteks untuk proses secara keseluruhan dan untuk utas individu dalam proses. Penjadwalan oleh Kernel dilakukan pada basis utas. Kernel melakukan pembuatan, penjadwalan, dan manajemen utas di ruang Kernel. Utas kernel umumnya lebih lambat untuk dibuat dan dikelola daripada utas pengguna.

Keuntungan

  • Kernel dapat secara bersamaan menjadwalkan beberapa utas dari proses yang sama pada beberapa proses.
  • Jika satu utas dalam suatu proses diblokir, Kernel dapat menjadwalkan utas lain dari proses yang sama.
  • Rutinitas kernel itu sendiri bisa multithread.

Kekurangan

  • Utas kernel umumnya lebih lambat untuk dibuat dan dikelola daripada utas pengguna.
  • Transfer kendali dari satu utas ke utas lainnya dalam proses yang sama membutuhkan sakelar mode ke Kernel.

Model Multithreading

Beberapa sistem operasi menyediakan gabungan utas tingkat pengguna dan fasilitas utas tingkat kernel. Solaris adalah contoh bagus dari pendekatan gabungan ini. Dalam sistem gabungan, beberapa utas dalam aplikasi yang sama dapat berjalan secara paralel pada banyak prosesor dan panggilan sistem pemblokiran tidak perlu memblokir seluruh proses. Model multithreading ada tiga jenis

  • Banyak ke banyak hubungan.
  • Banyak ke satu hubungan.
  • Hubungan satu lawan satu.

Model Banyak ke Banyak

Model banyak-ke-banyak menggandakan sejumlah utas pengguna ke sejumlah utas kernel yang sama atau lebih kecil.

Diagram berikut menunjukkan model threading banyak ke banyak di mana 6 utas tingkat pengguna melakukan multipleks dengan 6 utas tingkat kernel. Dalam model ini, pengembang dapat membuat utas pengguna sebanyak yang diperlukan dan utas Kernel yang sesuai dapat berjalan secara paralel di mesin multiprosesor. Model ini memberikan akurasi terbaik pada konkurensi dan ketika sebuah thread melakukan panggilan sistem pemblokiran, kernel dapat menjadwalkan thread lain untuk dieksekusi.

Banyak untuk Satu Model

Model banyak-ke-satu memetakan banyak utas tingkat pengguna ke satu utas tingkat kernel. Manajemen utas dilakukan di ruang pengguna oleh perpustakaan utas. Saat utas membuat panggilan sistem pemblokiran, seluruh proses akan diblokir. Hanya satu utas yang dapat mengakses Kernel pada satu waktu, sehingga banyak utas tidak dapat berjalan secara paralel di multiprosesor.

Jika pustaka utas tingkat pengguna diimplementasikan dalam sistem operasi sedemikian rupa sehingga sistem tidak mendukungnya, maka utas kernel menggunakan mode hubungan banyak-ke-satu.

Model Satu ke Satu

Ada hubungan satu-ke-satu dari utas tingkat pengguna dengan utas tingkat kernel. Model ini memberikan lebih banyak konkurensi daripada model banyak-ke-satu. Ini juga memungkinkan utas lain berjalan ketika utas membuat panggilan sistem pemblokiran. Ini mendukung banyak utas untuk dieksekusi secara paralel pada mikroprosesor.

Kerugian dari model ini adalah bahwa membuat utas pengguna membutuhkan utas Kernel yang sesuai. OS / 2, windows NT dan windows 2000 menggunakan model hubungan satu ke satu.

Perbedaan antara User-Level & Kernel-Level Thread

SN Untaian Tingkat Pengguna Utas Tingkat Kernel
1 Untaian tingkat pengguna lebih cepat dibuat dan dikelola. Utas tingkat kernel lebih lambat untuk dibuat dan dikelola.
2 Implementasinya dilakukan dengan pustaka utas di tingkat pengguna. Sistem operasi mendukung pembuatan utas Kernel.
3 Utas tingkat pengguna bersifat umum dan dapat berjalan di sistem operasi apa pun. Utas tingkat kernel dikhususkan untuk sistem operasi.
4 Aplikasi multi-utas tidak dapat memanfaatkan multiprosesing. Rutinitas kernel itu sendiri bisa multithread.

Manajemen memori adalah fungsionalitas sistem operasi yang menangani atau mengelola memori utama dan memindahkan proses bolak-balik antara memori utama dan disk selama eksekusi. Manajemen memori melacak setiap lokasi memori, terlepas dari apakah itu dialokasikan untuk beberapa proses atau gratis. Ia memeriksa berapa banyak memori yang akan dialokasikan untuk proses. Ini memutuskan proses mana yang akan mendapatkan memori pada jam berapa. Ini melacak setiap kali beberapa memori dibebaskan atau tidak dialokasikan dan karenanya memperbarui status.

Tutorial ini akan mengajarkan Anda konsep dasar yang berkaitan dengan Manajemen Memori.

Ruang Alamat Proses

Ruang alamat proses adalah kumpulan alamat logis yang direferensikan oleh proses dalam kodenya. Misalnya, saat pengalamatan 32-bit digunakan, alamat dapat berkisar dari 0 hingga 0x7fffffff; yaitu, 2 ^ 31 kemungkinan angka, dengan ukuran teoretis total 2 gigabyte.

Sistem operasi menangani pemetaan alamat logis ke alamat fisik pada saat alokasi memori untuk program. Ada tiga jenis alamat yang digunakan dalam program sebelum dan sesudah memori dialokasikan -

SN Alamat & Deskripsi Memori
1

Symbolic addresses

Alamat yang digunakan dalam kode sumber. Nama variabel, konstanta, dan label instruksi adalah elemen dasar dari ruang alamat simbolik.

2

Relative addresses

Pada saat kompilasi, kompilator mengubah alamat simbolik menjadi alamat relatif.

3

Physical addresses

Loader menghasilkan alamat ini pada saat program dimuat ke memori utama.

Alamat virtual dan fisik sama dalam skema pengikatan alamat waktu kompilasi dan waktu muat. Alamat virtual dan fisik berbeda dalam skema pengikatan alamat waktu eksekusi.

Himpunan semua alamat logis yang dihasilkan oleh program disebut sebagai a logical address space. Himpunan semua alamat fisik yang sesuai dengan alamat logis ini disebut sebagaiphysical address space.

Pemetaan runtime dari alamat virtual ke fisik dilakukan oleh unit manajemen memori (MMU) yang merupakan perangkat keras. MMU menggunakan mekanisme berikut untuk mengubah alamat virtual ke alamat fisik.

  • Nilai dalam register dasar ditambahkan ke setiap alamat yang dihasilkan oleh proses pengguna, yang diperlakukan sebagai offset pada saat dikirim ke memori. Misalnya, jika nilai register dasar adalah 10000, maka upaya pengguna untuk menggunakan lokasi alamat 100 akan dialokasikan kembali secara dinamis ke lokasi 10100.

  • Program pengguna berhubungan dengan alamat virtual; itu tidak pernah melihat alamat fisik yang sebenarnya.

Pemuatan Statis vs Dinamis

Pilihan antara Static atau Dynamic Loading dibuat pada saat program komputer sedang dikembangkan. Jika Anda harus memuat program Anda secara statis, maka pada saat kompilasi, program lengkap akan dikompilasi dan ditautkan tanpa meninggalkan program eksternal atau ketergantungan modul. Linker menggabungkan program objek dengan modul objek lain yang diperlukan menjadi program absolut, yang juga menyertakan alamat logis.

Jika Anda menulis program yang dimuat secara dinamis, maka kompiler Anda akan mengkompilasi program tersebut dan untuk semua modul yang ingin Anda sertakan secara dinamis, hanya referensi yang akan disediakan dan pekerjaan lainnya akan diselesaikan pada saat eksekusi.

Pada saat memuat, dengan static loading, program absolut (dan data) dimuat ke dalam memori agar eksekusi dapat dimulai.

Jika Anda menggunakan dynamic loading, rutinitas dinamis dari pustaka disimpan pada disk dalam bentuk yang dapat direlokasi dan dimuat ke dalam memori hanya ketika dibutuhkan oleh program.

Penautan Statis vs Dinamis

Seperti dijelaskan di atas, ketika penautan statis digunakan, penaut menggabungkan semua modul lain yang diperlukan oleh program ke dalam satu program yang dapat dijalankan untuk menghindari ketergantungan waktu proses.

Ketika penautan dinamis digunakan, tidak diperlukan untuk menautkan modul atau pustaka yang sebenarnya dengan program, melainkan referensi ke modul dinamis disediakan pada saat kompilasi dan penautan. Perpustakaan Tautan Dinamis (DLL) di Windows dan Objek Bersama di Unix adalah contoh yang baik dari perpustakaan dinamis.

Swapping

Swapping adalah mekanisme di mana suatu proses dapat ditukar sementara dari memori utama (atau dipindahkan) ke penyimpanan sekunder (disk) dan membuat memori tersebut tersedia untuk proses lain. Di lain waktu, sistem menukar kembali proses dari penyimpanan sekunder ke memori utama.

Meskipun kinerja biasanya dipengaruhi oleh proses swapping tetapi itu membantu dalam menjalankan banyak proses besar secara paralel dan itulah alasannya Swapping is also known as a technique for memory compaction.

Total waktu yang dibutuhkan oleh proses swapping termasuk waktu yang dibutuhkan untuk memindahkan seluruh proses ke disk sekunder dan kemudian menyalin proses tersebut kembali ke memori, serta waktu yang dibutuhkan untuk mendapatkan kembali memori utama.

Mari kita asumsikan bahwa proses pengguna berukuran 2048KB dan pada hard disk standar tempat pertukaran akan dilakukan memiliki kecepatan transfer data sekitar 1 MB per detik. Transfer aktual dari proses 1000K ke atau dari memori akan membutuhkan

2048KB / 1024KB per second
= 2 seconds
= 2000 milliseconds

Sekarang mempertimbangkan waktu masuk dan keluar, ini akan membutuhkan 4000 milidetik ditambah overhead lainnya di mana proses bersaing untuk mendapatkan kembali memori utama.

Alokasi memori

Memori utama biasanya memiliki dua partisi -

  • Low Memory - Sistem operasi berada di memori ini.

  • High Memory - Proses pengguna disimpan dalam memori tinggi.

Sistem operasi menggunakan mekanisme alokasi memori berikut.

SN Alokasi & Deskripsi Memori
1

Single-partition allocation

Dalam jenis alokasi ini, skema register relokasi digunakan untuk melindungi proses pengguna dari satu sama lain, dan dari mengubah kode dan data sistem operasi. Register relokasi berisi nilai alamat fisik terkecil sedangkan register batas berisi kisaran alamat logis. Setiap alamat logis harus kurang dari register batas.

2

Multiple-partition allocation

Dalam jenis alokasi ini, memori utama dibagi menjadi beberapa partisi berukuran tetap di mana setiap partisi hanya berisi satu proses. Ketika sebuah partisi kosong, sebuah proses dipilih dari antrian input dan dimuat ke partisi gratis. Ketika proses berakhir, partisi menjadi tersedia untuk proses lain.

Fragmentasi

Saat proses dimuat dan dihapus dari memori, ruang memori bebas dipecah menjadi potongan-potongan kecil. Itu terjadi setelah terkadang proses tidak dapat dialokasikan ke blok memori mengingat ukurannya yang kecil dan blok memori tetap tidak digunakan. Masalah ini dikenal sebagai Fragmentasi.

Fragmentasi terdiri dari dua jenis -

SN Fragmentasi & Deskripsi
1

External fragmentation

Ruang memori total cukup untuk memenuhi permintaan atau untuk menyimpan proses di dalamnya, tetapi tidak bersebelahan, sehingga tidak dapat digunakan.

2

Internal fragmentation

Blok memori yang ditugaskan untuk memproses lebih besar. Beberapa bagian dari memori tidak digunakan, karena tidak dapat digunakan oleh proses lain.

Diagram berikut menunjukkan bagaimana fragmentasi dapat menyebabkan pemborosan memori dan teknik pemadatan dapat digunakan untuk membuat lebih banyak memori bebas dari memori terfragmentasi -

Fragmentasi eksternal dapat dikurangi dengan pemadatan atau pengacakan konten memori untuk menempatkan semua memori bebas bersama dalam satu blok besar. Untuk membuat pemadatan memungkinkan, relokasi harus dinamis.

Fragmentasi internal dapat dikurangi dengan menetapkan partisi terkecil secara efektif tetapi cukup besar untuk proses tersebut.

Paging

Komputer dapat menangani lebih banyak memori daripada jumlah yang terpasang secara fisik pada sistem. Memori ekstra ini sebenarnya disebut memori virtual dan ini adalah bagian dari hard yang diatur untuk meniru RAM komputer. Teknik paging berperan penting dalam mengimplementasikan memori virtual.

Paging adalah teknik manajemen memori di mana ruang alamat proses dipecah menjadi blok berukuran sama yang disebut pages(ukuran pangkat 2, antara 512 byte dan 8192 byte). Ukuran proses diukur dalam jumlah halaman.

Demikian pula, memori utama dibagi menjadi blok berukuran tetap kecil yang disebut memori (fisik) frames dan ukuran bingkai dipertahankan sama dengan ukuran halaman untuk mendapatkan pemanfaatan memori utama yang optimal dan untuk menghindari fragmentasi eksternal.

Terjemahan Alamat

Alamat halaman dipanggil logical address dan diwakili oleh page number dan offset.

Logical Address = Page number + page offset

Alamat bingkai dipanggil physical address dan diwakili oleh a frame number dan offset.

Physical Address = Frame number + page offset

Sebuah struktur data disebut page map table digunakan untuk melacak hubungan antara halaman dari suatu proses ke bingkai dalam memori fisik.

Ketika sistem mengalokasikan bingkai ke halaman mana pun, itu menerjemahkan alamat logis ini ke alamat fisik dan membuat entri ke tabel halaman untuk digunakan selama pelaksanaan program.

Ketika suatu proses akan dieksekusi, halaman terkait dimuat ke dalam frame memori yang tersedia. Misalkan Anda memiliki program 8Kb tetapi memori Anda hanya dapat menampung 5Kb pada suatu titik waktu tertentu, maka konsep paging akan muncul. Ketika komputer kehabisan RAM, sistem operasi (OS) akan memindahkan halaman memori yang tidak aktif atau tidak diinginkan ke memori sekunder untuk membebaskan RAM untuk proses lain dan mengembalikannya saat dibutuhkan oleh program.

Proses ini berlanjut selama seluruh eksekusi program di mana OS terus menghapus halaman idle dari memori utama dan menuliskannya ke memori sekunder dan mengembalikannya saat diperlukan oleh program.

Keuntungan dan Kerugian Paging

Berikut adalah daftar keuntungan dan kerugian paging -

  • Paging mengurangi fragmentasi eksternal, tetapi masih mengalami fragmentasi internal.

  • Paging mudah diimplementasikan dan diasumsikan sebagai teknik manajemen memori yang efisien.

  • Karena ukuran halaman dan bingkai sama, pertukaran menjadi sangat mudah.

  • Tabel halaman membutuhkan ruang memori ekstra, jadi mungkin tidak baik untuk sistem yang memiliki RAM kecil.

Segmentasi

Segmentasi adalah teknik manajemen memori di mana setiap pekerjaan dibagi menjadi beberapa segmen dengan ukuran berbeda, satu untuk setiap modul yang berisi bagian yang menjalankan fungsi terkait. Setiap segmen sebenarnya adalah ruang alamat logis yang berbeda dari program tersebut.

Ketika suatu proses akan dieksekusi, segmentasinya yang sesuai dimuat ke dalam memori yang tidak bersebelahan meskipun setiap segmen dimuat ke dalam blok memori yang tersedia yang berdekatan.

Manajemen memori segmen bekerja sangat mirip dengan paging tetapi di sini segmen memiliki panjang variabel dimana seperti pada halaman halaman memiliki ukuran tetap.

Segmen program berisi fungsi utama program, fungsi utilitas, struktur data, dan sebagainya. Sistem operasi memelihara asegment map tableuntuk setiap proses dan daftar blok memori bebas bersama dengan nomor segmen, ukurannya dan lokasi memori yang sesuai di memori utama. Untuk setiap segmen, tabel menyimpan alamat awal segmen dan panjang segmen. Referensi ke lokasi memori mencakup nilai yang mengidentifikasi segmen dan offset.

Komputer dapat menangani lebih banyak memori daripada jumlah yang diinstal secara fisik pada sistem. Memori ekstra ini sebenarnya disebutvirtual memory dan ini adalah bagian dari hard disk yang diatur untuk meniru RAM komputer.

Keuntungan utama yang terlihat dari skema ini adalah bahwa program bisa lebih besar dari memori fisik. Memori virtual memiliki dua tujuan. Pertama, ini memungkinkan kita untuk memperluas penggunaan memori fisik dengan menggunakan disk. Kedua, ini memungkinkan kita memiliki perlindungan memori, karena setiap alamat virtual diterjemahkan ke alamat fisik.

Berikut adalah situasinya, ketika seluruh program tidak perlu dimuat sepenuhnya di memori utama.

  • Rutinitas penanganan kesalahan tertulis pengguna hanya digunakan ketika terjadi kesalahan dalam data atau komputasi.

  • Opsi dan fitur tertentu dari suatu program mungkin jarang digunakan.

  • Banyak tabel diberi jumlah ruang alamat tetap meskipun hanya sejumlah kecil tabel yang benar-benar digunakan.

  • Kemampuan untuk mengeksekusi program yang hanya sebagian di memori akan memberikan banyak keuntungan.

  • Lebih sedikit jumlah I / O yang dibutuhkan untuk memuat atau menukar setiap program pengguna ke dalam memori.

  • Sebuah program tidak lagi dibatasi oleh jumlah memori fisik yang tersedia.

  • Setiap program pengguna dapat menggunakan lebih sedikit memori fisik, lebih banyak program dapat dijalankan pada waktu yang sama, dengan peningkatan yang sesuai dalam pemanfaatan dan throughput CPU.

Mikroprosesor modern yang ditujukan untuk penggunaan tujuan umum, unit manajemen memori, atau MMU, dibangun ke dalam perangkat keras. Tugas MMU adalah menerjemahkan alamat virtual menjadi alamat fisik. Contoh dasar diberikan di bawah ini -

Memori virtual biasanya diimplementasikan oleh permintaan paging. Ini juga dapat diimplementasikan dalam sistem segmentasi. Segmentasi permintaan juga dapat digunakan untuk menyediakan memori virtual.

Demand Paging

Sistem halaman permintaan sangat mirip dengan sistem halaman dengan pertukaran di mana proses berada di memori sekunder dan halaman dimuat hanya berdasarkan permintaan, bukan sebelumnya. Ketika sakelar konteks terjadi, sistem operasi tidak menyalin halaman program lama ke disk atau halaman program baru mana pun ke dalam memori utama. Sebaliknya, ia hanya mulai menjalankan program baru setelah memuat halaman pertama dan mengambilnya. halaman program sebagaimana mereka direferensikan.

Saat menjalankan program, jika program mereferensikan halaman yang tidak tersedia di memori utama karena ditukar beberapa saat yang lalu, prosesor memperlakukan referensi memori yang tidak valid ini sebagai page fault dan mentransfer kontrol dari program ke sistem operasi untuk meminta halaman tersebut kembali ke memori.

Keuntungan

Berikut adalah keuntungan dari Demand Paging -

  • Memori virtual yang besar.
  • Penggunaan memori lebih efisien.
  • Tidak ada batasan pada tingkat multiprogramming.

Kekurangan

  • Jumlah tabel dan jumlah overhead prosesor untuk menangani interupsi halaman lebih besar daripada kasus teknik manajemen halaman sederhana.

Algoritma Penggantian Halaman

Algoritme penggantian halaman adalah teknik yang digunakan Sistem Operasi untuk memutuskan halaman memori mana yang akan ditukar, menulis ke disk ketika halaman memori perlu dialokasikan. Paging terjadi setiap kali terjadi kesalahan halaman dan halaman gratis tidak dapat digunakan untuk tujuan alokasi akuntansi karena halaman tidak tersedia atau jumlah halaman gratis lebih rendah dari halaman yang diperlukan.

Saat halaman yang dipilih untuk diganti dan dihalaman keluar, direferensikan lagi, halaman tersebut harus dibaca dari disk, dan ini memerlukan penyelesaian I / O. Proses ini menentukan kualitas algoritme penggantian laman: semakin sedikit waktu menunggu laman masuk, semakin baik algoritme tersebut.

Algoritme penggantian halaman melihat informasi terbatas tentang mengakses halaman yang disediakan oleh perangkat keras, dan mencoba memilih halaman mana yang harus diganti untuk meminimalkan jumlah halaman yang terlewat, sambil menyeimbangkannya dengan biaya penyimpanan utama dan waktu prosesor dari algoritme diri. Ada banyak algoritme penggantian halaman yang berbeda. Kami mengevaluasi algoritma dengan menjalankannya pada string referensi memori tertentu dan menghitung jumlah kesalahan halaman,

String Referensi

String referensi memori disebut string referensi. String referensi dibuat secara artifisial atau dengan menelusuri sistem tertentu dan mencatat alamat dari setiap referensi memori. Pilihan terakhir menghasilkan sejumlah besar data, di mana kami mencatat dua hal.

  • Untuk ukuran halaman tertentu, kita hanya perlu mempertimbangkan nomor halaman, bukan alamat keseluruhan.

  • Jika kita memiliki referensi ke halaman p, lalu referensi langsung berikut ke halaman ptidak akan pernah menyebabkan kesalahan halaman. Halaman p akan ada dalam memori setelah referensi pertama; referensi segera berikut ini tidak akan salah.

  • Misalnya, pertimbangkan urutan alamat berikut - 123,215,600,1234,76,96

  • Jika ukuran halaman 100, maka string referensi adalah 1,2,6,12,0,0

Algoritme First In First Out (FIFO)

  • Halaman terlama di memori utama adalah halaman yang akan dipilih untuk diganti.

  • Mudah diimplementasikan, simpan daftar, ganti halaman dari ekor dan tambahkan halaman baru di head.

Algoritma Halaman Optimal

  • Algoritme penggantian halaman yang optimal memiliki tingkat kesalahan halaman terendah dari semua algoritme. Algoritme penggantian halaman yang optimal ada, dan disebut OPT atau MIN.

  • Ganti halaman yang tidak akan digunakan untuk jangka waktu yang lama. Gunakan waktu saat halaman akan digunakan.

Algoritme Least Terakhir Digunakan (LRU)

  • Halaman yang sudah lama tidak digunakan di memori utama adalah halaman yang akan dipilih untuk diganti.

  • Mudah diterapkan, simpan daftar, ganti halaman dengan melihat ke masa lalu.

Algoritme Buffer Halaman

  • Untuk memulai proses dengan cepat, pertahankan kumpulan bingkai gratis.
  • Pada halaman kesalahan, pilih halaman yang akan diganti.
  • Tulis halaman baru dalam bingkai kumpulan gratis, tandai tabel halaman dan mulai ulang prosesnya.
  • Sekarang tulis halaman kotor dari disk dan letakkan bingkai yang menahan halaman yang diganti di kolam bebas.

Algoritme Paling Sedikit Digunakan (LFU)

  • Halaman dengan jumlah terkecil adalah halaman yang akan dipilih untuk diganti.

  • Algoritme ini mengalami situasi di mana halaman sangat banyak digunakan selama fase awal proses, tetapi kemudian tidak pernah digunakan lagi.

Algoritme Paling Sering Digunakan (MFU)

  • Algoritme ini didasarkan pada argumen bahwa halaman dengan jumlah terkecil mungkin baru saja dibawa masuk dan belum digunakan.

Salah satu tugas penting Sistem Operasi adalah mengelola berbagai perangkat I / O termasuk mouse, keyboard, panel sentuh, drive disk, adaptor layar, perangkat USB, layar yang dipetakan bit, LED, Konverter analog-ke-digital, On / sakelar mati, koneksi jaringan, audio I / O, printer dll.

Sistem I / O diperlukan untuk mengambil permintaan I / O aplikasi dan mengirimkannya ke perangkat fisik, kemudian mengambil respons apa pun yang kembali dari perangkat dan mengirimkannya ke aplikasi. Perangkat I / O dapat dibagi menjadi dua kategori -

  • Block devices- Perangkat blok adalah perangkat yang berkomunikasi dengan pengemudi dengan mengirimkan seluruh blok data. Misalnya, Hard disk, kamera USB, Disk-On-Key, dll.

  • Character devices- Perangkat karakter adalah perangkat yang berkomunikasi dengan pengemudi dengan mengirim dan menerima karakter tunggal (byte, oktet). Misalnya, port serial, port paralel, kartu suara, dll

Pengontrol Perangkat

Driver perangkat adalah modul perangkat lunak yang dapat dipasang ke OS untuk menangani perangkat tertentu. Sistem Operasi membutuhkan bantuan dari driver perangkat untuk menangani semua perangkat I / O.

Pengontrol Perangkat berfungsi seperti antarmuka antara perangkat dan driver perangkat. Unit I / O (Keyboard, mouse, printer, dll.) Biasanya terdiri dari komponen mekanis dan komponen elektronik di mana komponen elektronik disebut pengontrol perangkat.

Selalu ada pengontrol perangkat dan driver perangkat untuk setiap perangkat untuk berkomunikasi dengan Sistem Operasi. Pengontrol perangkat mungkin dapat menangani beberapa perangkat. Sebagai antarmuka, tugas utamanya adalah mengubah aliran bit serial menjadi blok byte, melakukan koreksi kesalahan seperlunya.

Setiap perangkat yang terhubung ke komputer dihubungkan dengan steker dan soket, dan soket terhubung ke pengontrol perangkat. Berikut adalah model untuk menghubungkan CPU, memori, pengontrol, dan perangkat I / O di mana CPU dan pengontrol perangkat semuanya menggunakan bus umum untuk komunikasi.

I / O sinkron vs asinkron

  • Synchronous I/O - Dalam skema ini, eksekusi CPU menunggu sementara I / O berlanjut

  • Asynchronous I/O - I / O berjalan secara bersamaan dengan eksekusi CPU

Komunikasi ke Perangkat I / O

CPU harus memiliki cara untuk menyampaikan informasi ke dan dari perangkat I / O. Ada tiga pendekatan yang tersedia untuk berkomunikasi dengan CPU dan Perangkat.

  • I / O Instruksi Khusus
  • I / O yang dipetakan memori
  • Akses memori langsung (DMA)

I / O Instruksi Khusus

Ini menggunakan instruksi CPU yang secara khusus dibuat untuk mengontrol perangkat I / O. Instruksi ini biasanya memungkinkan data dikirim ke perangkat I / O atau dibaca dari perangkat I / O.

I / O yang dipetakan memori

Saat menggunakan I / O yang dipetakan memori, ruang alamat yang sama digunakan bersama oleh memori dan perangkat I / O. Perangkat terhubung langsung ke lokasi memori utama tertentu sehingga perangkat I / O dapat mentransfer blok data ke / dari memori tanpa melalui CPU.

Saat menggunakan IO yang dipetakan memori, OS mengalokasikan buffer dalam memori dan memberi tahu perangkat I / O untuk menggunakan buffer tersebut guna mengirim data ke CPU. Perangkat I / O beroperasi secara tidak sinkron dengan CPU, mengganggu CPU setelah selesai.

Keuntungan dari metode ini adalah bahwa setiap instruksi yang dapat mengakses memori dapat digunakan untuk memanipulasi perangkat I / O. Memory mapped IO digunakan untuk sebagian besar perangkat I / O berkecepatan tinggi seperti disk, antarmuka komunikasi.

Akses Memori Langsung (DMA)

Perangkat lambat seperti keyboard akan menghasilkan interupsi ke CPU utama setelah setiap byte ditransfer. Jika perangkat cepat seperti disk menghasilkan interupsi untuk setiap byte, sistem operasi akan menghabiskan sebagian besar waktunya menangani interupsi ini. Jadi komputer biasa menggunakan perangkat keras akses memori langsung (DMA) untuk mengurangi overhead ini.

Direct Memory Access (DMA) berarti CPU memberikan otoritas modul I / O untuk membaca dari atau menulis ke memori tanpa keterlibatan. Modul DMA sendiri mengontrol pertukaran data antara memori utama dan perangkat I / O. CPU hanya terlibat di awal dan akhir transfer dan hanya terputus setelah seluruh blok ditransfer.

Direct Memory Access memerlukan perangkat keras khusus yang disebut pengontrol DMA (DMAC) yang mengelola transfer data dan mengatur akses ke bus sistem. Pengontrol diprogram dengan penunjuk sumber dan tujuan (tempat membaca / menulis data), penghitung untuk melacak jumlah byte yang ditransfer, dan pengaturan, yang mencakup I / O dan jenis memori, interupsi dan status untuk siklus CPU.

Sistem operasi menggunakan perangkat keras DMA sebagai berikut -

Langkah Deskripsi
1 Driver perangkat diperintahkan untuk mentransfer data disk ke alamat buffer X.
2 Driver perangkat kemudian menginstruksikan pengontrol disk untuk mentransfer data ke buffer.
3 Pengontrol disk memulai transfer DMA.
4 Pengontrol disk mengirimkan setiap byte ke pengontrol DMA.
5 Pengontrol DMA mentransfer byte ke buffer, meningkatkan alamat memori, mengurangi penghitung C hingga C menjadi nol.
6 Ketika C menjadi nol, DMA menginterupsi CPU untuk menyelesaikan transfer sinyal.

Polling vs Interupsi I / O

Komputer harus memiliki cara untuk mendeteksi datangnya semua jenis input. Ada dua cara agar hal ini terjadi, yang dikenal sebagaipolling dan interrupts. Kedua teknik ini memungkinkan prosesor untuk menangani peristiwa yang dapat terjadi kapan saja dan yang tidak terkait dengan proses yang sedang berjalan.

Polling I / O

Polling adalah cara termudah bagi perangkat I / O untuk berkomunikasi dengan prosesor. Proses pemeriksaan status perangkat secara berkala untuk melihat apakah sudah waktunya untuk operasi I / O berikutnya, disebut polling. Perangkat I / O hanya menempatkan informasi dalam daftar Status, dan prosesor harus datang dan mendapatkan informasi tersebut.

Seringkali, perangkat tidak memerlukan perhatian dan ketika seseorang melakukannya harus menunggu sampai diinterogasi berikutnya oleh program polling. Ini adalah metode yang tidak efisien dan banyak waktu prosesor yang terbuang percuma untuk jajak pendapat yang tidak perlu.

Bandingkan metode ini dengan seorang guru yang terus bertanya kepada setiap siswa di kelas, satu demi satu, jika mereka membutuhkan bantuan. Jelas metode yang lebih efisien bagi siswa untuk memberi tahu guru kapan pun mereka membutuhkan bantuan.

Menginterupsi I / O

Skema alternatif untuk menangani I / O adalah metode yang digerakkan oleh interupsi. Interupsi adalah sinyal ke mikroprosesor dari perangkat yang membutuhkan perhatian.

Pengontrol perangkat menempatkan sinyal interupsi pada bus ketika membutuhkan perhatian CPU ketika CPU menerima interupsi, Ini menyimpan statusnya saat ini dan memanggil penangan interupsi yang sesuai menggunakan vektor interupsi (alamat rutinitas OS untuk menangani berbagai peristiwa). Ketika perangkat yang mengganggu telah ditangani, CPU melanjutkan tugas aslinya seolah-olah tidak pernah terputus.

Perangkat lunak I / O sering diatur dalam lapisan berikut -

  • User Level Libraries- Ini menyediakan antarmuka yang sederhana ke program pengguna untuk melakukan input dan output. Sebagai contoh,stdio adalah pustaka yang disediakan oleh bahasa pemrograman C dan C ++.

  • Kernel Level Modules - Ini menyediakan driver perangkat untuk berinteraksi dengan pengontrol perangkat dan modul I / O independen perangkat yang digunakan oleh driver perangkat.

  • Hardware - Lapisan ini mencakup pengontrol perangkat keras dan perangkat keras aktual yang berinteraksi dengan driver perangkat dan menghidupkan perangkat keras.

Konsep utama dalam desain perangkat lunak I / O adalah perangkat lunak tersebut harus independen dan memungkinkan untuk menulis program yang dapat mengakses perangkat I / O apa pun tanpa harus menentukan perangkat terlebih dahulu. Misalnya, program yang membaca file sebagai input harus dapat membaca file pada floppy disk, hard disk, atau CD-ROM, tanpa harus memodifikasi program untuk setiap perangkat yang berbeda.

Driver Perangkat

Driver perangkat adalah modul perangkat lunak yang dapat dipasang ke OS untuk menangani perangkat tertentu. Sistem Operasi membutuhkan bantuan dari driver perangkat untuk menangani semua perangkat I / O. Driver perangkat merangkum kode yang bergantung pada perangkat dan mengimplementasikan antarmuka standar sedemikian rupa sehingga kode berisi pembacaan / penulisan register khusus perangkat. Driver perangkat, umumnya ditulis oleh produsen perangkat dan dikirimkan bersama perangkat pada CD-ROM.

Seorang driver perangkat melakukan pekerjaan berikut -

  • Untuk menerima permintaan dari perangkat lunak independen di atas untuk itu.
  • Berinteraksi dengan pengontrol perangkat untuk mengambil dan memberikan I / O dan melakukan penanganan error yang diperlukan
  • Memastikan bahwa permintaan berhasil dijalankan

Bagaimana device driver menangani sebuah request adalah sebagai berikut: Misalkan sebuah request datang untuk membaca sebuah blok N. Jika driver idle pada saat sebuah request tiba, ia mulai menjalankan request tersebut dengan segera. Jika tidak, jika driver sudah sibuk dengan beberapa permintaan lain, itu menempatkan permintaan baru dalam antrian permintaan yang tertunda.

Penangan interupsi

Penangan interupsi, juga dikenal sebagai rutin layanan interupsi atau ISR, adalah perangkat lunak atau lebih khusus lagi fungsi panggilan balik dalam sistem operasi atau lebih khusus lagi dalam driver perangkat, yang eksekusinya dipicu oleh penerimaan interupsi.

Ketika interupsi terjadi, prosedur interupsi melakukan apa pun yang harus dilakukan untuk menangani interupsi, memperbarui struktur data dan membangun proses yang sedang menunggu interupsi terjadi.

Mekanisme interupsi menerima sebuah alamat ─ sebuah nomor yang memilih sebuah rutinitas / fungsi penanganan interupsi tertentu dari satu set kecil. Dalam kebanyakan arsitektur, alamat ini adalah offset yang disimpan dalam tabel yang disebut tabel vektor interupsi. Vektor ini berisi alamat memori dari penangan interupsi khusus.

Perangkat Lunak I / O Tanpa Perangkat

Fungsi dasar dari perangkat lunak yang tidak bergantung pada perangkat adalah untuk menjalankan fungsi I / O yang umum untuk semua perangkat dan untuk menyediakan antarmuka yang seragam ke perangkat lunak tingkat pengguna. Meskipun sulit untuk menulis perangkat lunak independen perangkat sepenuhnya, tetapi kami dapat menulis beberapa modul yang umum di antara semua perangkat. Berikut adalah daftar fungsi Perangkat Lunak I / O yang tidak bergantung perangkat -

  • Antarmuka seragam untuk driver perangkat
  • Penamaan perangkat - Nama mnemonik yang dipetakan ke nomor perangkat Mayor dan Kecil
  • Perlindungan perangkat
  • Menyediakan ukuran blok yang tidak tergantung perangkat
  • Buffering karena data yang berasal dari perangkat tidak dapat disimpan di tujuan akhir.
  • Alokasi penyimpanan pada perangkat blok
  • Alokasi dan merilis perangkat khusus
  • Error Reporting

Perangkat Lunak User-Space I / O

Ini adalah pustaka yang menyediakan antarmuka yang lebih kaya dan sederhana untuk mengakses fungsionalitas kernel atau pada akhirnya interaktif dengan driver perangkat. Sebagian besar perangkat lunak I / O tingkat pengguna terdiri dari prosedur pustaka dengan beberapa pengecualian seperti sistem spooling yang merupakan cara menangani perangkat I / O khusus dalam sistem multiprogram.

Pustaka I / O (mis., Stdio) berada di ruang pengguna untuk menyediakan antarmuka ke I / O SW yang tidak tergantung perangkat OS. Misalnya putchar (), getchar (), printf () dan scanf () adalah contoh stdio library I / O tingkat pengguna yang tersedia dalam pemrograman C.

Subsistem I / O Kernel

Kernel I / O Subsystem bertanggung jawab untuk menyediakan banyak layanan yang terkait dengan I / O. Berikut adalah beberapa layanan yang disediakan.

  • Scheduling- Kernel menjadwalkan sekumpulan permintaan I / O untuk menentukan urutan yang baik untuk mengeksekusinya. Ketika aplikasi mengeluarkan panggilan sistem I / O pemblokiran, permintaan ditempatkan di antrian untuk perangkat itu. Penjadwal Kernel I / O mengatur ulang urutan antrian untuk meningkatkan efisiensi sistem secara keseluruhan dan waktu respons rata-rata yang dialami oleh aplikasi.

  • Buffering - Kernel I / O Subsystem memiliki area memori yang disebut bufferyang menyimpan data saat ditransfer antara dua perangkat atau antara perangkat dengan operasi aplikasi. Buffering dilakukan untuk mengatasi ketidaksesuaian kecepatan antara produsen dan konsumen aliran data atau untuk menyesuaikan antara perangkat yang memiliki ukuran transfer data yang berbeda.

  • Caching- Kernel memelihara memori cache yang merupakan wilayah memori cepat yang menyimpan salinan data. Akses ke salinan yang di-cache lebih efisien daripada akses ke aslinya.

  • Spooling and Device Reservation- Spool adalah buffer yang menahan output untuk perangkat, seperti printer, yang tidak dapat menerima aliran data yang disisipkan. Sistem spooling menyalin file spool yang diantrekan ke printer satu per satu. Di beberapa sistem operasi, spooling dikelola oleh proses daemon sistem. Di sistem operasi lain, ini ditangani oleh utas kernel.

  • Error Handling - Sistem operasi yang menggunakan memori terlindungi dapat melindungi dari berbagai jenis perangkat keras dan kesalahan aplikasi.

Mengajukan

File adalah kumpulan informasi terkait bernama yang direkam pada penyimpanan sekunder seperti disk magnetis, pita magnetik, dan disk optik. Secara umum file adalah urutan bit, byte, baris atau record yang maknanya ditentukan oleh pembuat file dan pengguna.

Struktur File

Sebuah Struktur File harus sesuai dengan format yang diperlukan yang dapat dimengerti oleh sistem operasi.

  • Sebuah file memiliki struktur tertentu yang ditentukan menurut tipenya.

  • File teks adalah urutan karakter yang disusun menjadi beberapa baris.

  • File sumber adalah urutan prosedur dan fungsi.

  • File objek adalah urutan byte yang disusun menjadi blok-blok yang dapat dimengerti oleh mesin.

  • Ketika sistem operasi mendefinisikan struktur file yang berbeda, itu juga berisi kode untuk mendukung struktur file ini. Unix, MS-DOS mendukung jumlah minimum struktur file.

Jenis File

Jenis file mengacu pada kemampuan sistem operasi untuk membedakan berbagai jenis file seperti file sumber file teks dan file biner dll. Banyak sistem operasi mendukung banyak jenis file. Sistem operasi seperti MS-DOS dan UNIX memiliki jenis file berikut -

File biasa

  • Ini adalah file yang berisi informasi pengguna.
  • Ini mungkin memiliki teks, database atau program yang dapat dieksekusi.
  • Pengguna dapat menerapkan berbagai operasi pada file seperti menambah, mengubah, menghapus atau bahkan menghapus seluruh file.

File direktori

  • File-file ini berisi daftar nama file dan informasi lain yang berhubungan dengan file-file ini.

File khusus

  • File ini juga dikenal sebagai file perangkat.
  • File-file ini mewakili perangkat fisik seperti disk, terminal, printer, jaringan, tape drive, dll.

File-file ini terdiri dari dua jenis -

  • Character special files - data ditangani karakter demi karakter seperti dalam kasus terminal atau printer.

  • Block special files - data ditangani dalam blok seperti pada disk dan kaset.

Mekanisme Akses File

Mekanisme akses file mengacu pada cara catatan file dapat diakses. Ada beberapa cara untuk mengakses file -

  • Akses berurutan
  • Akses Langsung / Acak
  • Akses berurutan yang diindeks

Akses berurutan

Akses sekuensial adalah di mana catatan diakses dalam beberapa urutan, yaitu, informasi dalam file diproses secara berurutan, satu catatan demi satu catatan. Metode akses ini adalah yang paling primitif. Contoh: Kompiler biasanya mengakses file dengan cara ini.

Akses Langsung / Acak

  • Organisasi file akses acak menyediakan, mengakses catatan secara langsung.

  • Setiap record memiliki alamatnya sendiri pada file dengan bantuan yang dapat langsung diakses untuk membaca atau menulis.

  • Rekaman tidak perlu dalam urutan apa pun di dalam file dan tidak perlu berada di lokasi yang berdekatan pada media penyimpanan.

Akses berurutan yang diindeks

  • Mekanisme ini dibangun berdasarkan akses berurutan.
  • Indeks dibuat untuk setiap file yang berisi petunjuk ke berbagai blok.
  • Indeks dicari secara berurutan dan penunjuknya digunakan untuk mengakses file secara langsung.

Alokasi Ruang

File dialokasikan ruang disk oleh sistem operasi. Sistem operasi menerapkan tiga cara utama berikut untuk mengalokasikan ruang disk ke file.

  • Alokasi Bersebelahan
  • Alokasi Tertaut
  • Alokasi Terindeks

Alokasi Bersebelahan

  • Setiap file menempati ruang alamat yang berdekatan di disk.
  • Alamat disk yang ditetapkan berada dalam urutan linier.
  • Mudah diimplementasikan.
  • Fragmentasi eksternal adalah masalah utama dengan jenis teknik alokasi ini.

Alokasi Tertaut

  • Setiap file membawa daftar tautan ke blok disk.
  • Direktori berisi link / penunjuk ke blok pertama dari sebuah file.
  • Tidak ada fragmentasi eksternal
  • Efektif digunakan dalam file akses berurutan.
  • Tidak efisien dalam hal file akses langsung.

Alokasi Terindeks

  • Memberikan solusi untuk masalah alokasi yang berdekatan dan terkait.
  • Blok indeks dibuat dengan semua penunjuk ke file.
  • Setiap file memiliki blok indeksnya sendiri yang menyimpan alamat ruang disk yang ditempati oleh file tersebut.
  • Direktori berisi alamat blok indeks file.

Keamanan mengacu pada penyediaan sistem perlindungan untuk sumber daya sistem komputer seperti CPU, memori, disk, program perangkat lunak dan yang terpenting data / informasi yang disimpan dalam sistem komputer. Jika program komputer dijalankan oleh pengguna yang tidak sah, maka dia dapat menyebabkan kerusakan parah pada komputer atau data yang disimpan di dalamnya. Jadi sistem komputer harus dilindungi dari akses yang tidak sah, akses jahat ke memori sistem, virus, worm, dll. Kita akan membahas topik berikut di bab ini.

  • Authentication
  • Kata sandi satu kali
  • Ancaman Program
  • Ancaman Sistem
  • Klasifikasi Keamanan Komputer

Autentikasi

Otentikasi mengacu pada mengidentifikasi setiap pengguna sistem dan mengaitkan program yang menjalankan dengan pengguna tersebut. Merupakan tanggung jawab Sistem Operasi untuk membuat sistem proteksi yang memastikan bahwa pengguna yang menjalankan program tertentu adalah asli. Sistem Operasi umumnya mengidentifikasi / mengautentikasi pengguna menggunakan tiga cara berikut -

  • Username / Password - Pengguna harus memasukkan nama pengguna dan kata sandi terdaftar dengan Sistem Operasi untuk masuk ke sistem.

  • User card/key - Pengguna perlu memasukkan kartu ke dalam slot kartu, atau memasukkan kunci yang dihasilkan oleh generator kunci dalam opsi yang disediakan oleh sistem operasi untuk masuk ke sistem.

  • User attribute - fingerprint/ eye retina pattern/ signature - Pengguna harus meneruskan atributnya melalui perangkat input yang ditunjuk yang digunakan oleh sistem operasi untuk masuk ke sistem.

Kata sandi satu kali

Kata sandi satu kali memberikan keamanan tambahan bersama dengan otentikasi normal. Dalam sistem One-Time Password, kata sandi unik diperlukan setiap kali pengguna mencoba masuk ke sistem. Setelah kata sandi satu kali digunakan, maka kata sandi tidak dapat digunakan lagi. Kata sandi satu kali diterapkan dengan berbagai cara.

  • Random numbers- Pengguna diberikan kartu dengan nomor yang dicetak bersama dengan huruf yang sesuai. Sistem meminta nomor yang sesuai dengan beberapa huruf yang dipilih secara acak.

  • Secret key- Pengguna disediakan perangkat keras yang dapat membuat id rahasia yang dipetakan dengan id pengguna. Sistem meminta id rahasia yang akan dibuat setiap saat sebelum login.

  • Network password - Beberapa aplikasi komersial mengirim kata sandi satu kali ke pengguna di ponsel / email terdaftar yang harus dimasukkan sebelum masuk.

Ancaman Program

Proses sistem operasi dan kernel melakukan tugas yang ditentukan seperti yang diinstruksikan. Jika program pengguna membuat proses ini melakukan tugas berbahaya, maka itu dikenal sebagaiProgram Threats. Salah satu contoh umum ancaman program adalah program yang dipasang di komputer yang dapat menyimpan dan mengirim kredensial pengguna melalui jaringan ke beberapa peretas. Berikut adalah daftar beberapa ancaman program yang terkenal.

  • Trojan Horse - Program tersebut menjebak kredensial login pengguna dan menyimpannya untuk dikirim ke pengguna jahat yang nantinya dapat login ke komputer dan dapat mengakses sumber daya sistem.

  • Trap Door - Jika suatu program yang dirancang untuk bekerja sesuai kebutuhan, memiliki celah keamanan dalam kodenya dan melakukan tindakan ilegal tanpa sepengetahuan pengguna maka disebut memiliki pintu jebakan.

  • Logic Bomb- Logic bomb adalah situasi ketika sebuah program berperilaku tidak baik hanya ketika kondisi tertentu terpenuhi, jika tidak program itu berfungsi sebagai program asli. Lebih sulit untuk dideteksi.

  • Virus- Virus sesuai namanya dapat mereplikasi dirinya sendiri di sistem komputer. Mereka sangat berbahaya dan dapat mengubah / menghapus file pengguna, sistem crash. Virus umumnya adalah kode kecil yang tertanam dalam sebuah program. Saat pengguna mengakses program, virus mulai tertanam di file / program lain dan dapat membuat sistem tidak dapat digunakan oleh pengguna

Ancaman Sistem

Ancaman sistem mengacu pada penyalahgunaan layanan sistem dan koneksi jaringan untuk menimbulkan masalah bagi pengguna. Ancaman sistem dapat digunakan untuk meluncurkan ancaman program pada jaringan lengkap yang disebut serangan program. Ancaman sistem menciptakan lingkungan sedemikian rupa sehingga sumber daya sistem operasi / file pengguna disalahgunakan. Berikut adalah daftar dari beberapa ancaman sistem yang terkenal.

  • Worm- Worm adalah proses yang dapat mengganggu kinerja sistem dengan menggunakan sumber daya sistem ke tingkat yang ekstrim. Proses worm menghasilkan banyak salinan di mana setiap salinan menggunakan sumber daya sistem, mencegah semua proses lain untuk mendapatkan sumber daya yang diperlukan. Proses worm bahkan dapat mematikan seluruh jaringan.

  • Port Scanning - Port scanning adalah mekanisme atau cara yang digunakan hacker untuk mendeteksi kerentanan sistem untuk menyerang sistem.

  • Denial of Service- Serangan Denial of service biasanya mencegah pengguna untuk menggunakan sistem secara sah. Misalnya, pengguna mungkin tidak dapat menggunakan internet jika penolakan layanan menyerang pengaturan konten browser.

Klasifikasi Keamanan Komputer

Sesuai Kriteria Evaluasi Sistem Komputer Tepercaya Departemen Pertahanan AS, ada empat klasifikasi keamanan dalam sistem komputer: A, B, C, dan D. Spesifikasi ini banyak digunakan untuk menentukan dan memodelkan keamanan sistem dan solusi keamanan. Berikut adalah uraian singkat dari masing-masing klasifikasi.

SN Jenis Klasifikasi & Deskripsi
1

Type A

Level tertinggi. Menggunakan spesifikasi desain formal dan teknik verifikasi. Memberikan jaminan keamanan proses tingkat tinggi.

2

Type B

Menyediakan sistem perlindungan wajib. Memiliki semua properti dari sistem kelas C2. Melampirkan label sensitivitas ke setiap objek. Ini terdiri dari tiga jenis.

  • B1- Menjaga label keamanan setiap objek dalam sistem. Label digunakan untuk membuat keputusan untuk mengakses kontrol.

  • B2 - Memperluas label sensitivitas ke setiap sumber daya sistem, seperti objek penyimpanan, mendukung saluran rahasia, dan mengaudit peristiwa.

  • B3 - Memungkinkan membuat daftar atau grup pengguna untuk kontrol akses untuk memberikan akses atau mencabut akses ke objek bernama tertentu.

3

Type C

Memberikan perlindungan dan akuntabilitas pengguna menggunakan kemampuan audit. Ini terdiri dari dua jenis.

  • C1- Memasukkan kontrol sehingga pengguna dapat melindungi informasi pribadi mereka dan menjaga pengguna lain dari tidak sengaja membaca / menghapus data mereka. Versi UNIX sebagian besar adalah kelas Cl.

  • C2 - Menambahkan kontrol akses tingkat individu ke kemampuan sistem tingkat Cl.

4

Type D

Level terendah. Perlindungan minimum. MS-DOS, Window 3.1 termasuk dalam kategori ini.

Linux adalah salah satu versi populer dari Sistem operasi UNIX. Ini adalah open source karena kode sumbernya tersedia secara gratis. Ini gratis untuk digunakan. Linux dirancang dengan mempertimbangkan kompatibilitas UNIX. Daftar fungsinya sangat mirip dengan UNIX.

Komponen Sistem Linux

Sistem Operasi Linux memiliki tiga komponen utama

  • Kernel- Kernel adalah bagian inti dari Linux. Ini bertanggung jawab untuk semua aktivitas utama dari sistem operasi ini. Ini terdiri dari berbagai modul dan berinteraksi langsung dengan perangkat keras yang mendasarinya. Kernel menyediakan abstraksi yang diperlukan untuk menyembunyikan detail perangkat keras tingkat rendah ke sistem atau program aplikasi.

  • System Library- Perpustakaan sistem adalah fungsi atau program khusus yang menggunakan program aplikasi atau utilitas sistem untuk mengakses fitur Kernel. Pustaka ini menerapkan sebagian besar fungsi sistem operasi dan tidak memerlukan hak akses kode modul kernel.

  • System Utility - Program System Utility bertanggung jawab untuk melakukan tugas tingkat individu yang terspesialisasi.

Mode Kernel vs Mode Pengguna

Kode komponen kernel dijalankan dalam mode hak istimewa yang disebut kernel modedengan akses penuh ke semua sumber daya komputer. Kode ini mewakili satu proses, dijalankan dalam ruang alamat tunggal dan tidak memerlukan sakelar konteks apa pun dan karenanya sangat efisien dan cepat. Kernel menjalankan setiap proses dan menyediakan layanan sistem untuk proses, menyediakan akses yang dilindungi ke perangkat keras untuk proses.

Kode dukungan yang tidak diperlukan untuk dijalankan dalam mode kernel ada di Perpustakaan Sistem. Program pengguna dan program sistem lainnya bekerjaUser Modeyang tidak memiliki akses ke perangkat keras sistem dan kode kernel. Program / utilitas pengguna menggunakan pustaka Sistem untuk mengakses fungsi Kernel untuk mendapatkan tugas tingkat rendah sistem.

Fitur dasar

Berikut adalah beberapa fitur penting dari Sistem Operasi Linux.

  • Portable- Portabilitas berarti perangkat lunak dapat bekerja pada berbagai jenis perangkat keras dengan cara yang sama. Kernel Linux dan program aplikasi mendukung instalasi mereka pada semua jenis platform perangkat keras.

  • Open Source- Kode sumber Linux tersedia secara gratis dan merupakan proyek pengembangan berbasis komunitas. Beberapa tim bekerja sama untuk meningkatkan kemampuan sistem operasi Linux dan terus berkembang.

  • Multi-User - Linux adalah sistem multipengguna yang berarti banyak pengguna dapat mengakses sumber daya sistem seperti memori / ram / program aplikasi secara bersamaan.

  • Multiprogramming - Linux adalah sistem multiprogramming yang berarti banyak aplikasi dapat berjalan pada waktu yang bersamaan.

  • Hierarchical File System - Linux menyediakan struktur file standar di mana file sistem / file pengguna disusun.

  • Shell- Linux menyediakan program penerjemah khusus yang dapat digunakan untuk menjalankan perintah sistem operasi. Dapat digunakan untuk melakukan berbagai jenis operasi, memanggil program aplikasi. dll.

  • Security - Linux menyediakan keamanan pengguna menggunakan fitur otentikasi seperti perlindungan kata sandi / akses terkontrol ke file / enkripsi data tertentu.

Arsitektur

Ilustrasi berikut menunjukkan arsitektur sistem Linux -

Arsitektur Sistem Linux terdiri dari lapisan berikut -

  • Hardware layer - Hardware terdiri dari semua perangkat periferal (RAM / HDD / CPU dll).

  • Kernel - Ini adalah komponen inti dari Sistem Operasi, berinteraksi langsung dengan perangkat keras, menyediakan layanan tingkat rendah ke komponen lapisan atas.

  • Shell- Antarmuka ke kernel, menyembunyikan kompleksitas fungsi kernel dari pengguna. Shell mengambil perintah dari pengguna dan menjalankan fungsi kernel.

  • Utilities - Program utilitas yang menyediakan sebagian besar fungsionalitas sistem operasi kepada pengguna.