ORKOM 6 : Dukungan Sistem Operasi

Materi PPT : Dukungan Sistem Operasi

 Apa itu Sistem Operasi?

Tapi pertama-tama, mari kita tentukan apa itu sistem operasi. Sistem Operasi (OS) adalah kumpulan perangkat lunak yang mengelola perangkat keras komputer dan menyediakan layanan untuk program. Secara khusus, ini menyembunyikan kompleksitas perangkat keras, mengelola sumber daya komputasi, dan menyediakan isolasi dan perlindungan. Yang terpenting, itu secara langsung memiliki akses hak istimewa ke perangkat keras yang mendasarinya.

Komponen utama OS adalah sistem file, penjadwal, dan driver perangkat. Anda mungkin pernah menggunakan sistem operasi Desktop (Windows, Mac, Linux) dan Embedded (Android, iOS) sebelumnya.

Ada tiga elemen kunci dari sebuah sistem operasi, yaitu: (1) Abstraksi (proses, utas, file, soket, memori), (2) Mekanisme (buat, jadwalkan, buka, tulis, alokasikan), dan (3) Kebijakan (LRU, EDF).

Ada dua prinsip desain sistem operasi, yaitu: (1) Pemisahan mekanisme dan kebijakan dengan menerapkan mekanisme yang fleksibel untuk mendukung kebijakan, dan (2) Optimasi untuk kasus umum: Di mana OS akan digunakan? Apa yang ingin dieksekusi oleh pengguna di mesin itu? Apa saja persyaratan beban kerjanya?

Ada tiga jenis Sistem Operasi yang umum digunakan saat ini. Yang pertama adalah Monolithic OS, dimana seluruh OS bekerja di ruang kernel dan sendirian dalam mode supervisor. Yang kedua adalah Modular OS, di mana beberapa bagian dari inti sistem akan ditempatkan dalam file independen yang disebut modul yang dapat ditambahkan ke sistem pada saat dijalankan. Dan yang ketiga adalah Micro OS, dimana kernel dipecah menjadi proses-proses terpisah yang disebut server. Beberapa server berjalan di ruang kernel dan beberapa berjalan di ruang pengguna.

Sekarang mari kita bahas konsep utama yang perlu Anda pahami lebih detail.
1: Proses dan Manajemen Proses

Suatu proses pada dasarnya adalah program dalam eksekusi. Eksekusi suatu proses harus berkembang secara berurutan. 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 menjadi sebuah proses, program 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

Stack: Proses Stack berisi data sementara, seperti parameter metode / fungsi, alamat pengirim, dan variabel lokal.
    Heap: Ini adalah memori yang dialokasikan secara dinamis ke suatu proses selama waktu berjalannya.
    Teks: Ini termasuk aktivitas saat ini yang diwakili oleh nilai Program Counter dan konten register prosesor.
    Data: Bagian ini berisi variabel global dan statis.

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 sekaligus:


 Mulai: Keadaan awal saat proses pertama kali dimulai / dibuat.
    Siap: Proses sedang menunggu untuk ditetapkan ke prosesor. Proses siap sedang menunggu prosesor dialokasikan oleh sistem operasi sehingga mereka dapat berjalan. Suatu proses mungkin masuk ke status ini setelah status Mulai, atau saat menjalankannya tetapi terganggu oleh penjadwal untuk menetapkan CPU ke beberapa proses lain.
    Berjalan: Setelah proses ditetapkan ke prosesor oleh penjadwal OS, status proses diatur untuk berjalan dan prosesor menjalankan instruksinya.
    Menunggu: proses berpindah ke status menunggu jika perlu menunggu sumber daya, seperti menunggu input pengguna, atau menunggu file tersedia.
    Dihentikan atau Keluar: 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 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:


 Status Proses: Status proses saat ini - apakah sudah siap, berjalan, menunggu, atau apa pun.
    Hak Istimewa Proses: Ini diperlukan untuk mengizinkan / melarang akses ke sumber daya sistem.
    ID Proses: Identifikasi unik untuk setiap proses dalam sistem operasi.
    Pointer: Penunjuk ke proses induk.
    Program Counter: Program Counter adalah penunjuk ke alamat instruksi selanjutnya yang akan dijalankan untuk proses ini.
    Register CPU: Berbagai register CPU di mana proses perlu disimpan untuk eksekusi untuk status berjalan.
    Informasi Penjadwalan CPU: Prioritas proses dan informasi penjadwalan lainnya yang diperlukan untuk menjadwalkan proses.
    Informasi Manajemen Memori: Ini termasuk informasi tabel halaman, batas memori, dan tabel segmen, tergantung pada memori yang digunakan oleh sistem operasi.
    Informasi Akuntansi: Ini termasuk jumlah CPU yang digunakan untuk eksekusi proses, batas waktu, ID eksekusi, dan sebagainya.
    Informasi Status IO: Ini termasuk daftar perangkat I / O yang dialokasikan untuk proses.

2: Untaian dan Konkurensi

Utas adalah aliran eksekusi melalui kode proses. Ini memiliki penghitung programnya sendiri yang melacak instruksi mana yang akan dieksekusi selanjutnya. Ia juga memiliki register sistem yang menyimpan variabel kerja saat ini, dan tumpukan yang berisi riwayat eksekusi.

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

Sebuah utas juga disebut proses ringan. Utas menyediakan cara untuk meningkatkan kinerja aplikasi melalui paralelisme. Utas merupakan pendekatan perangkat lunak untuk meningkatkan kinerja sistem operasi dengan mengurangi biaya overhead. Sebuah utas 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.


 Keuntungan benang:

    Mereka meminimalkan waktu peralihan konteks.
    Menggunakannya memberikan konkurensi dalam suatu proses.
    Mereka menyediakan komunikasi yang efisien.
    Lebih ekonomis untuk membuat dan mengubah konteks utas sakelar.
    Benang memungkinkan pemanfaatan arsitektur multiprosesor ke skala dan efisiensi yang lebih besar.

Untaian diimplementasikan dengan dua cara berikut:

    Utas Tingkat Pengguna: Utas yang dikelola pengguna.
    Kernel Level Threads: Utas 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 bisa khusus aplikasi 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 peralihan mode ke Kernel.


3: Penjadwalan

Proses penjadwalan adalah tanggung jawab manajer proses yang menangani penghapusan proses yang sedang berjalan dari CPU dan pemilihan proses lain atas dasar strategi tertentu.

Penjadwalan proses adalah bagian penting dari sistem operasi Multiprogramming. Sistem operasi ini 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.

OS memelihara semua Blok Kontrol Proses (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 barunya.

Sistem Operasi memelihara antrian penjadwalan proses penting berikut ini:

    Antrian pekerjaan: Antrian ini menyimpan semua proses dalam sistem.
    Antrian siap: 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.
    Antrian perangkat: 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, ini telah digabungkan dengan CPU.

Model proses dua status mengacu pada status berjalan dan tidak berjalan:

    Berjalan: Ketika proses baru dibuat, itu masuk ke dalam sistem dalam status berjalan.
    Tidak Berjalan: Proses yang tidak berjalan disimpan dalam antrian, menunggu giliran untuk dieksekusi. Setiap entri dalam antrian adalah penunjuk ke proses tertentu. Antrian diimplementasikan dengan menggunakan daftar tertaut. Penggunaan dispatcher adalah sebagai berikut: ketika sebuah proses diinterupsi, proses tersebut 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.

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

Ketika penjadwal mengalihkan CPU dari menjalankan satu proses ke proses lainnya, status dari proses yang sedang berjalan disimpan ke dalam blok kontrol proses. Setelah ini, status untuk proses selanjutnya dimuat dari PCBnya sendiri dan digunakan untuk mengatur PC, register, dll. Pada saat 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.

Ketika proses dialihkan, informasi berikut disimpan untuk digunakan nanti: Penghitung Program, Informasi Penjadwalan, Nilai Register Dasar dan Batas, Register Saat Ini Digunakan, Status Berubah, Informasi Status I / O, dan Informasi Akuntansi.
4: Manajemen Memori

Manajemen memori adalah fungsionalitas sistem operasi yang menangani atau mengelola memori utama. Ini 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. Dan itu melacak setiap kali memori dibebaskan atau tidak dialokasikan, dan dengan demikian memperbarui status.

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, ²³¹ angka yang mungkin, dengan ukuran teoretis total 2 gigabyte.

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

    Alamat simbolis: Alamat yang digunakan dalam kode sumber. Nama variabel, konstanta, dan label instruksi adalah elemen dasar dari ruang alamat simbolik.
    Alamat relatif: Pada saat kompilasi, kompilator mengubah alamat simbolik menjadi alamat relatif.
    Alamat fisik: 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 ruang alamat logis. Himpunan semua alamat fisik yang sesuai dengan alamat logis ini disebut sebagai ruang alamat fisik.
5: Komunikasi Antar Proses

Ada dua jenis proses: Independen dan Bekerja Sama. Proses independen tidak dipengaruhi oleh pelaksanaan proses lain, sedangkan proses kerjasama dapat dipengaruhi oleh proses pelaksanaan lainnya.

Anda mungkin berpikir bahwa proses tersebut, yang berjalan secara independen, akan dijalankan dengan sangat efisien. Namun pada kenyataannya, ada banyak situasi di mana sifat proses yang kooperatif dapat dimanfaatkan untuk meningkatkan kecepatan komputasi, kenyamanan, dan modularitas. Komunikasi antar proses (IPC) adalah mekanisme yang memungkinkan proses untuk berkomunikasi satu sama lain dan menyinkronkan tindakannya. Komunikasi antara proses-proses ini dapat dilihat sebagai metode kerjasama di antara mereka.

Proses dapat berkomunikasi satu sama lain dalam dua cara: Memori Bersama dan Parsing Pesan.

Metode Memori Bersama

Katakanlah ada dua proses: Produsen dan Konsumen. Produsen memproduksi beberapa item dan Konsumen mengkonsumsi item tersebut. Kedua proses tersebut memiliki ruang yang sama atau lokasi memori yang dikenal sebagai "penyangga", tempat item yang diproduksi oleh Produsen disimpan dan dari mana Konsumen mengkonsumsi item tersebut jika diperlukan.

Ada dua versi dari masalah ini: yang pertama dikenal sebagai masalah buffer tak terbatas, di mana Produser dapat terus memproduksi item dan tidak ada batasan pada ukuran buffer. Yang kedua dikenal sebagai masalah buffer terbatas, di mana Produser dapat memproduksi hingga sejumlah item tertentu, dan setelah itu mulai menunggu Konsumen untuk mengkonsumsinya.


Dalam masalah buffer terbatas, Produser dan Konsumen akan berbagi beberapa memori yang sama. Kemudian Produser akan mulai memproduksi item. Jika jumlah total barang yang diproduksi sama dengan ukuran buffer, Produsen akan menunggu hingga dikonsumsi oleh Konsumen.

Begitu pula dengan Konsumen yang terlebih dahulu mengecek ketersediaan barang tersebut, dan jika tidak ada barang yang tersedia maka Konsumen akan menunggu Produsen untuk memproduksinya. Jika ada barang yang tersedia, maka Konsumen akan mengkonsumsinya.

Metode Parsing Pesan

Dalam metode ini, proses berkomunikasi satu sama lain tanpa menggunakan memori bersama apa pun. Jika dua proses p1 dan p2 ingin berkomunikasi satu sama lain, mereka melanjutkan sebagai berikut:

    Buat tautan komunikasi (jika tautan sudah ada, tidak perlu membuatnya lagi.)
    Mulailah bertukar pesan menggunakan primitif dasar. Kami membutuhkan setidaknya dua primitif: kirim (pesan, tujuan) atau kirim (pesan) dan terima (pesan, host) atau terima (pesan)

Ukuran pesan dapat diperbaiki atau bervariasi. Jika ukurannya tetap, mudah bagi perancang OS tetapi rumit bagi pemrogram. Jika ukurannya bervariasi, maka mudah bagi pemrogram tetapi rumit bagi perancang OS. Pesan standar memiliki dua bagian: header dan body.

Header digunakan untuk menyimpan Jenis pesan, id tujuan, id sumber, panjang pesan, dan informasi kontrol. Informasi kontrol berisi informasi seperti apa yang harus dilakukan jika kehabisan ruang buffer, nomor urut, dan prioritasnya. Umumnya, pesan dikirim menggunakan gaya FIFO.
6: Manajemen Input / Output

Salah satu tugas penting dari Sistem Operasi adalah mengelola berbagai perangkat input / output (I / O), termasuk mouse, keyboard, panel sentuh, drive disk, adaptor tampilan, perangkat USB, layar yang dipetakan bit, LED, Analog- konverter ke digital, sakelar On / off, koneksi jaringan, audio I / O, printer, dan sebagainya.

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:

    Blokir perangkat: Perangkat blok adalah perangkat yang berkomunikasi dengan pengemudi dengan mengirimkan seluruh blok data. Misalnya hard disk, USB camera, Disk-On-Key, dan sebagainya.
    Perangkat Karakter: Perangkat karakter adalah perangkat yang berkomunikasi dengan pengemudi dengan mengirim dan menerima karakter tunggal (byte, oktet). Misalnya port serial, parallel port, sound card, dan sebagainya.

1. Instruksi Khusus I / O

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

2. 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 I / O yang dipetakan memori, OS mengalokasikan buffer dalam memori dan memberi tahu perangkat I / O untuk menggunakan buffer tersebut untuk mengirim data ke CPU. Perangkat I / O beroperasi secara tidak sinkron dengan CPU, dan menginterupsi CPU setelah selesai.

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

3. Akses memori langsung (DMA)

Perangkat lambat seperti keyboard akan menghasilkan gangguan ke CPU utama setelah setiap byte ditransfer. Jika perangkat cepat, seperti disk, menghasilkan interupsi untuk setiap byte, sistem operasi akan menghabiskan sebagian besar waktunya untuk 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 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 berbagai pengaturan. Ini termasuk I / O dan jenis memori serta interupsi dan status untuk siklus CPU.



Comments

Popular posts from this blog

ORKOM 10 : RISC & CISC Prosesor