Kamis, 07 Mei 2015

Process Description and Control

 3.1 WHAT IS A PROCESS

Kita juga bisa memikirkan proses sebagai entitas yang terdiri dari sejumlah elemen. Dua elemen penting dari sebuah proses adalah program code (yang dapat dibagi dengan proses lainnya yang melaksanakan program yang sama) dan satu set data yang terkait dengan kode itu. Pada setiap titik waktu tertentu, sementara program mengeksekusi, proses ini dapat secara unik ditandai dengan sejumlah elemen, termasuk yang berikut ini :
  • Identifier: Sebuah identifier unik yang terkait dengan proses ini, untuk membedakannya dari semua proses lainnya.
  • State: Jika proses ini sedang dijalankan, itu adalah dalam running state.
  • Priority: Tingkat prioritas relatif terhadap proses lainnya.
  • Program counter: Alamat dari instruksi berikutnya dalam program yang akan dijalankan.
  • Memory pointers: Termasuk pointer ke kode program dan data yang terkait dengan proses ini, ditambah blok memori setiap bersama dengan proses lainnya.
  • Context data: Ada data yang hadir dalam register di prosesor saat proses mengeksekusi.
  • I/O status information: Termasuk luar biasa permintaan I / O, I / O perangkat ditugaskan untuk proses ini, daftar file yang digunakan oleh proses, dan sebagainya.
  • Accounting information: Mungkin termasuk jumlah waktu prosesor dan waktu jam yang digunakan, batas waktu, nomor rekening, dan sebagainya.
Informasi yang ada dalam daftar sebelumnya disimpan ke dalam struktur data, biasanya disebut Process Control Block (Figure3.1).
Figure 3.1 Simplified Process Control Black
3.2 PROCESS STATES

A Two-State Process Model
Figure 3.2 Two-State Process Model

Dapat dilihat di Figure 3.2, terdapat 2 proses model. Yang (a) merupakan State Transition Diagram, pada model ini, proses bisa saja dalam satu dari 2 states: Running atau Not Running. Yang (b) merupakan Queuing Diagram. Queue dapat terdiri dari linked list dari blok data, dimana setiap blok merupakan satu proses.
Process Creation

Ketika sebuah proses baru yang akan ditambahkan ke mereka yang saat ini sedang dikelola, OS membangun struktur data yang digunakan untuk mengelola proses dan mengalokasikan ruang alamat di memori utama untuk proses.
Berikut Merupakan 4 peristiwa umum atau alasan mengarah pada penciptaan proses :
Table 3.1 Reasons for Process Creation

Ketika OS menciptakan proses atas permintaan eksplisit proses lain, tindakan ini disebut sebagai Process Spawning.

Process Termination
Table 3.2 Reasons for Process Termination

Tabel 3.2 merangkum alasan khas untuk process termination. Selain itu, sejumlah kondisi kesalahan dan kesalahan dapat menyebabkan penghentian proses. Dan akhirnya, dalam beberapa sistem operasi, proses dapa saja dihentikan oleh proses yang menciptakannya atau ketika proses induk itu sendiri diakhiri.

A Five State Model

five states dalam diagram model adalah sebagai berikut:
  • Running: Proses yang sedang dijalankan.
  • Ready: Sebuah proses yang siap untuk mengeksekusi ketika diberi kesempatan.
  • Block/Waiting: Sebuah proses yang tidak dapat mengeksekusi sampai beberapa peristiwa terjadi, seperti penyelesaian I / O operasi.
  • New: Sebuah proses yang baru saja dibuat namun belum mengakui ke kolam proses eksekusi oleh OS.
  • Exit: Sebuah proses yang telah dibebaskan dari kolam proses eksekusi oleh OS, baik karena dihentikan atau dibatalkan karena untuk beberapa alasan.

Figure 3.3 Five-State Process Model

Figure 3.6 menunjukkan jenis peristiwa yang menyebabkan setiap transisi state untuk proses; transisi yang mungkin adalah sebagai berikut:
  • Null -> New: Proses yang baru dibuat untuk mengeksekusi sebuah program.
  • New -> Ready: OS akan bergerak proses dari New state ke Ready state ketika siap untuk mengambil proses tambahan.
  • Ready -> Running: Ketika saatnya untuk memilih proses untuk menjalankan, OS memilih salah satu proses dalam Ready state.
  • Running -> Exit: Proses yang sedang berjalan dihentikan oleh OS jika proses menunjukkan bahwa mereka telah menyelesaikan atau jika dibatalkan.
  • Running -> Ready: Ketika proses yang berjalan melebihi waktu yang diizinkan untuk menginterupsi eksekusi merupakan alasan yang paling sering mengapa transisi ini terjadi.
  • Running -> Blocked: Sebuah proses diletakkan di Blocked state jika permintaan sesuatu yang harus menunggu.
  • Blocked -> Ready: Sebuah proses di Blocked state dipindahkan ke Ready state ketika acara yang telah menunggu terjadi.
  • Ready -> Exit: Untuk kejelasan, transisi ini tidak ditampilkan pada state diagram.
  • Blocked -> Exit:  Komentar di bawah item sebelumnya berlaku.
3.3 PROCESS CONTROL

Modes of Execution

Table 3.3 Typical Functions of an Operating System Kernel

3.4 EXECUTION OF THE OPERATING SYSTEM

Nonprocess Kernel

Figure 3.4 Relationship between Operating System and User Processes

Pada Figure 3.4(a), kebanyakan OS yang lama digunakan untuk mengeksekusi kernel dari OS keluar dari process apapun.
Pada Figure 3.4(b), OS menjadi kumpulan panggilan user untuk menjalan kan fungsi - fungsi yang ada dan mengeksekusi di dalam proses milik user.
Pada Figure 3.4(c), OS diimplementasikan sebagai kumpulan dari proses sistem.

Execution within User Processes

Sebuah alternatif yang umum dengan sistem operasi pada komputer yang lebih kecil untuk menjalankan hampir semua perangkat lunak OS dalam konteks proses pengguna.
Figure 3.5 menunjukkan struktur gambar proses khas untuk strategi ini.

Figure 3.5 Process Image: Operating System Executes within User Space


Operating System Overview

2.1 OPERATING SYSTEM OBJECTIVES AND FUNCTIONS

OS adalah program yang mengontrol eksekusi program aplikasi dan bertindak sebagai antarmuka antara aplikasi dan perangkat keras komputer. Hal ini dapat dianggap sebagai mempunyai 3 tujuan:

  • Convenience: Sebuah OS membuat komputer lebih nyaman digunakan.
  • Efficiency: Sebuah OS memungkinkan sumber daya sistem komputer untuk digunakan secara efisien.
  • Ability to evolve: Sebuah OS harus dibangun sedemikian rupa untuk mengizinkan pembangunan yang efektif, pengujian, dan pengenalan fungsi sistem baru tanpa mengganggu layanan.
Secara umum, OS biasanya memberika service di bidang berikut:
  • Program development: OS menyediakan berbagai fasilitas dan layanan, seperti editor dan debugger, untuk membantu programmer dalam membuat program.
  • Program execution: Sejumlah langkah yang perlu dilakukan untuk mengeksekusi program.
  • Access to I/O devices: Setiap perangkat I / O memerlukan instruksi khas nya sendiri atau sinyal kontrol untuk operasi.
  • Controlled access to files: Untuk akses file, OS harus mencerminkan pemahaman rinci tidak hanya sifat I / O perangkat tetapi juga struktur data yang terdapat dalam file pada media penyimpanan
  • System access: Untuk sesama atau publik sistem, kontrol OS akses ke sistem secara keseluruhan dan ke sumber daya yang spesifik sistem.
  • Error detection and response: Berbagai kesalahan dapat terjadi ketika sistem komputer sedang berjalan.
  • Accounting: OS yang baik akan mengumpulkan statistik penggunaan untuk berbagai sumber daya dan memonitor parameter kinerja seperti waktu respon.
  • Instruction set architecture (ISA): ISA mendefinisikan instruksi bahasa mesin yang komputer dapat mengikuti.
  • Application binary interface (ABI): ABI mendefinisikan standar untuk portabilitas biner di program
  • Application programming interface (API): API ini memberikan akses program ke sumber daya perangkat keras dan layanan yang tersedia dalam sistem melalui pengguna.
Sebuah komputer merupakan kumpulan sumber dari perpindahan, penyimpanan dan pemrosesan data dan untuk mengatur fungsi-fungsi tersebut. Berikut merupakan gambaran OS sebagai sumber managemen.


Figure 2.1 The Operating System as Resource Manager

Gambar menunjukkan sumber utama yang dikelola oleh OS. Sebagian dari OS dalam memori utama. Ini termasuk kernel, atau inti, yang berisi fungsi yang paling sering digunakan di OS dan, pada waktu tertentu, bagian lain dari OS yang sedang digunakan.

Operating System akan terus berkembang untuk beberapa alasan:
  • Pembaharuan hardware dan tipe - tipe baru hardware
  • Layanan / service baru
  • Pembenahan dalam OS itu sendiri.
2.2 THE EVOLUTION OF OPERATING SYSTEMS
  • Serial ProcessingPada awal mulanya komputer, programmer berinteraksi langsung dengan komputer hardware, tanpa adanya OS. Komputer - komputer ini di jalannya dari konsol yang terdiri dari tampilan cahaya, toogle switches, beberapa form dari alat inputan, dan sebuah printer.
    System awal ini mempunyai 2 masalah utama:
    - Scheduling
    - Setup time
  • Simple Batch Systems
    Komputer pada awalnya sangatlah mahal, oleh karena itu penting untuk memaksimalkan penggunaan prosesor. Untuk meningkatkan utilization, konsep batch OS dikembangkan.
    Untuk memahami lebih dalam lagi, ada 2 point yang perlu dilihat:
    - Monitor point of view : Monitor mengontrol urutan acara
    - Processor point of view : Prosesor mengeksekusi instruksi dari bagian memori utama yang berisi monitor

    Point yang digunakan adalah Monitor, di mana monitor merupakan software yang digunakan untuk mengontrol program - program yang berjalan secara bersamaan. Digunakan juga Job Control Language (JCL) yang merupakan bahasa untuk menyediakan instruksi - instruksi ke monitor.
    Ada beberapa fitur - fitur hardware yang juga diperlukan :
    - Memory Protection
    - Timer
    - Privileged instructions
    - Interrupts
  • Multiprogrammed Batch Systems

    Figure 2.2 Multiprogramming Example

    Berdasarkan pada Figure 2.2,
    Uniprogramming adalah single program yang harus menyelesaikan satu program terlebih dahulu, setelah itu baru bisa melanjutkan ke program selanjutnya.
    Multiprogramming adalah merupakan program yang dapat menjalankan 2 atau 3 secara bergantian tanpa harus saling menunggu salah satu task selesai.
  • Timesharing SystemsSistem yang menggunakan multiprogramming untuk menghandel berbagai pekerjaan interaktif. Waktu processor dibagi berdasarkan jumlah user yang mengakses.

2.3 MAJOR ACHIEVEMENTS

Sistem operasi adalah salah satu bagian paling kompleks dari perangkat lunak yang pernah dikembangkan. Ada 4 teoritis utama dalam mengembangkan sistem operasi:
  • The Process
    Proses sendiri mempunyai banyak definisi, diantara lain:
    - Program dalam eksekusi.
    - Contoh program yang berjalan pada komputer.
    - Entitas yang dapat ditugaskan untuk dan dijalankan pada prosesor.
    - Unit aktivitas yang ditandai dengan thread berurutan tunggal dari eksekusi, keadaan saat ini, dan set yang terkait sumber daya sistem.

    Secara umum, ada empat penyebab utama kesalahan dalam proses :
    - Improper synchonization: Sering terjadi bahwa rutinitas harus ditangguhkan menunggu event di tempat lain dalam sistem.
    - Failed mutual exclusion: Sering terjadi bahwa lebih dari satu pengguna atau program akan mencoba untuk memanfaatkan sumber daya bersama pada waktu yang sama.
    - Nondeterminate program operation: Hasil program tertentu biasanya harus tergantung hanya pada masukan untuk program itu dan bukan pada kegiatan program lain dalam sistem bersama.
    - Deadlocks: mungkin untuk dua atau lebih program yang akan menutup untuk menunggu satu sama lain.

    Proses juga terdapat 3 komponen :
    - Program executable.
    - Data terkait yang dibutuhkan oleh program (variabel, ruang kerja, buffer, dll).
    - Konteks pelaksanaan program.
  • Memory ManagementKebutuhan pengguna dapat dipenuhi terbaik dengan lingkungan komputasi yang mendukung pemrograman modular dan penggunaan fleksibel data. Manajer sistem perlu kontrol yang efisien dan teratur pada alokasi penyimpanan. OS, untuk memenuhi persyaratan ini, memiliki lima tanggung jawab manajemen penyimpanan utama, yaitu :
    - Process isolation: OS harus mencegah proses independen dari percampuran memory satu sama lain, baik data dan instruksi.
    - Automatic allocation and management: Program harus dialokasikan secara dinamis di hirarki memori yang diperlukan.
    - Support of modular programming: Programmer harus dapat menentukan modul program, dan untuk menciptakan, menghancurkan, dan mengubah ukuran modul dinamis.
    - Protection and access control: Berbagi memori, pada setiap tingkat hirarki memori, menciptakan potensi untuk satu program untuk mengatasi ruang memori lain.
    - Long-term storage: Banyak program aplikasi memerlukan sarana untuk menyimpan informasi untuk waktu yang lama, setelah komputer telah dimatikan.
  • Information protection and security
    Banyak pekerjaan dalam keamanan dan perlindungan yang berkaitan dengan sistem operasi secara kasar dapat dikelompokkan menjadi empat kategori:
    - Availability:  Prihatin dengan melindungi sistem terhadap gangguan.
    - Confidentiality: Menjamin bahwa pengguna tidak dapat membaca data yang aksesnya tidak sah.
    - Data integrity: Perlindungan data dari modifikasi yang tidak sah.
    - Authenticity: Prihatin dengan verifikasi yang tepat dari identitas pengguna dan keabsahan pesan atau data.
  • Scheduling and resource managementTanggung jawab utama dari OS adalah untuk mengelola berbagai sumber daya yang tersedia untuk itu (ruang memori utama, perangkat I / O, prosesor) dan untuk jadwal penggunaannya oleh berbagai proses yang aktif. Setiap alokasi sumber daya dan kebijakan penjadwalan harus mempertimbangkan tiga faktor:
    - Fairness: Keseimbangan aproximasi dan akses yang adil.
    - Differential responsiveness: Butuhnya diskriminasi diantara kelas dari pekerjaan yang berbeda - beda.
    - Efficiency: Memaksimalkan throughput dan meminimalisasi waktu respon.
2.4 Symmetric Multiprocessor OS Considerations

Sebuah sistem operasi SMP mengelola prosesor dan sumber daya lainnya komputer sehingga penggunaan dapat melihat sistem dengan cara yang sama sebagai sistem multiprogramming uniprocessor. Dengan demikian, OS multiprosesor harus menyediakan semua fungsi dari sistem multiprogramming ditambah fitur-fitur tambahan untuk mengakomodasi beberapa prosesor. Masalah-masalah desain kunci meliputi: 
- Simultenous concurrent processes or threads.
- Scheduling.
- Synchonization.
- Memory management
- Reliability and fault tolerance

2.5 MICROSOFT WINDOWS OVERVIEW

Komponen - komponen kernel-mode dari windows sebagai berikut:
  • Executive : Berisi layanan inti OS, seperti manajemen memori, proses dan manajemen thread, keamanan, I / O, dan komunikasi interprocess.
  • Kernel : Kontrol pelaksanaan prosesor.
  • Hardware abstraction : Map antara perintah hardware generik dan tanggapan dan mereka yang unik untuk platform tertentu.
  • Device drivers : Perpustakaan dinamis yang memperluas fungsi eksekutif.
  • Windowing and graphic system : Mengimplementasikan fungsi GUI, seperti berurusan dengan windows, kontrol antarmuka pengguna, dan menggambar.

Figure 2.3 Windows Internals Architecture [RUSS11]

2.6 LINUX

Komponen kernel utama sebagai berikut :
  • Signals: Kernel menggunakan sinyal untuk panggilan ke proses.
  • System calls: Merupakan sarana yang proses permintaan layanan kernel tertentu.
  • Processes and scheduler: Tes, mengelola, dan proses jadwal.
  • Virtual memory: Mengalokasikan dan mengelola memori virtual untuk proses.
  • Fyle systems: Menyediakan namespace hirarki global untuk file, direktori, dan benda-benda yang berhubungan dengan file lain dan menyediakan fungsi sistem file.
  • Network protocols: Mendukung Socket interface pengguna untuk TCP / IP protocol suite.
  • Character device drivers: Mengelola perangkat yang membutuhkan kernel untuk mengirim atau menerima data satu byte pada suatu waktu, seperti terminal, modem, dan printer.
  • Block device drivers: Mengelola perangkat yang membaca dan menulis data dalam blok, seperti berbagai bentuk memori sekunder (magnetic disks, CD-ROMs,dll).
  • Network device drivers: Mengelola jaringan antarmuka kartu dan komunikasi port yang terhubung ke perangkat jaringan, seperti bridge dan router.
  • Traps and faults: Menangani traps dan kesalahan yang dihasilkan oleh prosesor, seperti kesalahan memori.
  • Physical memory: Mengelola kumpulan frame halaman dalam memori nyata dan mengalokasikan halaman untuk memori virtual.
  • Interrupts: Menangani interupsi dari perangkat periferal.



Computer System Overview

Sebuah sistem operasi memanfaatkan sumber daya perangkat keras dari satu atau lebih procesors untuk menyediakan satu set layanan kepada pengguna sistem. OS ini juga mengelola memori sekunder dan I / O (input / output) perangkat atas nama penggunanya.

1.1 BASIC ELEMENTS

Pada tingkat atas, sebuah komputer terdiri dari processor, memory, dan komponen - kompnen I/O, dengan satu atau lebih modul dari setiap tipe. Komponen-komponen ini saling berhubungan dalam beberapa mode untuk mencapai fungsi utama dari komputer, yaitu untuk mengeksekusi program.
Dengan demikian, ada empat elemen struktur utama :
  • Processor: Mengontrol operasi komputer dan melakukan fungsi pengelolahan data. Ketika hanya ada satu prosesor, sering disebut sebagai central processing unit (CPU).
  • Main memory: Menyimpan data dan program. Memori ini biasanya stabil, saat komputer dimatikan, isi dari memori hilang. Sebaliknya, isi dari memori disk dipertahankan bahkan ketika sistem komputer dimatikan. Memori utama juga disebut sebagai real memory atau primary memory.
  • I/O modules: Memindahkan data antara komputer dan lingkungan eksternal. Lingkungan eksternal terdiri dari berbagai perangkat, termasuk perangkat secondary memory (cth : disks), peralatan komunikasi, dan terminal.
  • System bus: Menyediakan komunikasi antara processors, main memory, dan modul I/O.


Figure 1.1 Computer Components: Top-Level View

1.2 INSTRUCTION EXECUTION

Program yang akan dieksekusi oleh prosesor terdiri dari satu set instruksi yang tersimpan dalam memori. Dalam bentuk yang paling sederhana, proses instruksi terdiri dari dua langkah: Prosesor membaca (fetch) instruksi dari memori satu per satu dan mengeksekusi setiap instruksi. Program eksekusi itu sendiri terdiri dari pengulangan proses instruksi fetch dan eksekusi instruksi.


Figure 1.2 Basic Instruction Cycle

Proses yang diperlukan untuk satu instruksi disebut instruction cycle(figure 1.2). Secara general, aksi - aksi pada instruksi tersebut dibagi menjadi 4 kategori:

  • Processor-memory: Data dapat ditransfer dari prosesor ke memori atau dari memori ke prosesor.
  • Processor-I/O: Data dapat ditransfer ke atau dari perangkat periferal dengan mentransfer antara prosesor dan modul I / O.
  • Data processing: Prosesor dapat melakukan beberapa aritmatika atau logika operasi pada data.
  • Control: Sebuah instruksi dapat saja mengspesifikasi bahwa urutan eksekusi diubah.

Execution Cycle terdiri dari 2 jenis :

a. Pipelining


  b. Superscalar

1.3 INTERRUPTS

Hampir semua komputer menyediakan mekanisme yang modul lain (I / O, memori) dapat mengganggu urutan normal prosesor. Berikut ini adalah kelas - kelas dari interrupts:
  • Program: Dihasilkan oleh beberapa kondisi yang terjadi sebagai akibat dari eksekusi instruksi, seperti aritmatika overflow, pembagian dengan nol, mencoba untuk mengeksekusi instruksi mesin ilegal, dan referensi luar diizinkan ruang memori pengguna
  • Timer: Dihasilkan oleh timer dalam prosesor. Hal ini memungkinkan sistem operasi untuk menjalankan fungsi tertentu secara teratur.
  • I/O: Dihasilkan oleh I / O controller, untuk sinyal penyelesaian normal operasi atau untuk sinyal berbagai kondisi kesalahan.
  • Hardware failure: Yang dihasilkan oleh kegagalan, seperti listrik atau kesalahan paritas memori.
Instruction Cycle with interrupt


Figure 1.3 Instruction Cycle with interrupt

Proses Interrupt Cyle :
- Proccesor cek interrupt - interrupt yang ada.
- Jika tidak ada interupsi, mengambil instruksi berikutnya untuk program saat ini.
- Jika interupsi pending, hentikan pelaksanaan program saat ini, dan melaksanakan penanganan interrupt.

1.4 THE MEMORY HIERARCHY

Berbagai teknologi yang digunakan untuk mengimplementasikan sistem memori, dan seluruh spektrum ini teknologi, masing - masing hubungan berikut menyebabkan:

  • Semakin cepat waktu akses, semakin besar biaya per bit.
  • Semakin besar kapasitasnya, semakin kecil biaya per bit.
  • Semakin besar kapasitasnya, semakin lambat kecepatan akses.

Figure 1.4 The Memory Hierarchy

Jalan keluar dari dilema ini adalah untuk tidak bergantung pada komponen memori tunggal atau teknologi, tetapi untuk menggunakan hirarki memori. Sebuah hirarki khas diilustrasikan dalam Figure 1.4. Sebagai salah satu turunan hirarki, berikut terjadi:
  • Mengurangi biaya per bit.
  • Meningkatkan kapasitas.
  • Meningkatkan waktu akses.
  • Mengurangi frekuensi waktu untuk mengakses ke memory dan processor.
1.5 CACHE MEMORY

Cache memory ini dimaksudkan untuk memberikan memori akses waktu mendekati bahwa memory tercepat yang tersedia dan pada saat yang sama mendukung ukuran memori yang besar yang memiliki harga lebih murah jenis dari memori semikonduktor.
Terdapat 2 jenis Cache yaitu :
  • Single Cache

  • Three-level cache organization
Cache jika letaknya lebih dekat ke CPU maka lebih cepat juga untuk memproses instruksi/data.
Cache mempunyai sifat:
  • Tidak kelihatan di dalam operating system.
  • Meningkatkan kecepatan membaca dalam memory.
  • Membuat kecepatan processor lebih cepat daripada kecepatan memory.